Home › Forums › Akumuliatoriai / valdymo sistemos / įkrovikliai › Kontaktinio akumuliatoriaus prototipas
- This topic has 17 replies, 7 voices, and was last updated 7 years, 7 months ago by Nemirtingasis.
-
AuthorPosts
-
2017/03/17 at 13:43 #15763agniusmParticipant2017/03/17 at 16:08 #15765minde28383Participant
Atrodo labai graziai. Korpusas is aliumo ir plastmases?
sitas 10S6P. Kokiu konfiguraciju xSxP dezes planuoji gaminti? Kokia kaina bus?2017/03/17 at 17:44 #15767agniusmParticipant6p, 3p, s konfiguracijos galimos visokios. Korpusas spauzdintas, plasmasinis kol kas. Lietuvoje nežadu pardavinėti, bus kosmosas, ne mūsų algom
2017/03/30 at 13:11 #15922agniusmParticipantGl kas turi po ranka pasijungęs arduino ir kerta truputi, bo aš mekai. Reikia patikrinti tokį reikalą:
#include <SD.h>
#include <time.h>
#include <Wire.h>
#include <DS1307RTC.h>#define SD_CS 10
#define BUTTON_PIN 12
#define LED_PIN 13int temp = 0;
int id = 0;
unsigned long time = 0;
unsigned long timer;int interval = 0;
int readsCount = 0;
byte insCount = 0;
byte RTCEnable = 0;void setup () {
Serial.begin(115200);
//inicijuojami iejimai/isejimai
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
pinMode(SD_CS, OUTPUT);
digitalWrite(SD_CS, HIGH);
pinMode(BUTTON_PIN, INPUT);
digitalWrite(BUTTON_PIN, HIGH);
//SD korteles atidarymas
if (SD.begin(SD_CS))
{
Serial.println("SD card init success"); //pavyko
readConfig(); //skaitome konfiguracija
}
else
{
Serial.println("SD card init fail"); //nepavyko
while (true)
{
digitalWrite(LED_PIN, HIGH); //mirksime leda be galo
delay(100);
digitalWrite(LED_PIN, LOW);
delay(10);
}
}
}void loop() {
if (digitalRead(BUTTON_PIN)==LOW) //tikriname ar mygukas nsupaustas
{
delay(50);
if (digitalRead(BUTTON_PIN)==HIGH) return; //isitikaname ar tai ne koks triuksmas
while (digitalRead(BUTTON_PIN)==LOW) { //ir laukiame kol jis bus atleistas
delay(5);
}
char fname[13];
if (RTCEnable == 1)
{ //generuojama datos pavidalo failu pavadinimas
tmElements_t tm;
Serial.println("Reading time..");
if (RTC.read(tm)) {
if (tm.Month<10)
fname[0] = '0';
else fname[0] = char(tm.Month/10%10)+48;
fname[1] = char(tm.Month%10)+48;
if (tm.Day<10)
fname[2] = '0';
else fname[2] = char(tm.Day/10%10)+48;
fname[3] = char(tm.Day%10)+48;
if (tm.Hour<10)
fname[4] = '0';
else fname[4] = char(tm.Hour/10%10)+48;
fname[5] = char(tm.Hour%10)+48;
if (tm.Minute<10)
fname[6] = '0';
else fname[6] = char(tm.Minute/10%10)+48;
fname[7] = char(tm.Minute%10)+48;
fname[8] = '.';
fname[9] = 'c';
fname[10] = 's';
fname[11] = 'v';
fname[12] = '\0';
}
else
{
Serial.println("RTC fail"); //nepavyko gauti datos
while (true)
{
digitalWrite(LED_PIN, HIGH); //mirksime leda be galo
delay(100);
digitalWrite(LED_PIN, LOW);
delay(1000);
}
}
}
else
{ //generuojama eiliskas failu pavadinimas
long i = 0;
do
{
i++;
fname[0] = int(i/10000000)+48;
fname[1] = int(i/1000000%10)+48;
fname[2] = int(i/100000%10)+48;
fname[3] = int(i/10000%10)+48;
fname[4] = int(i/1000%10)+48;
fname[5] = int(i/100%10)+48;
fname[6] = int(i/10%10)+48;
fname[7] = int(i%10)+48;
fname[8] = '.';
fname[9] = 'c';
fname[10] = 's';
fname[11] = 'v';
fname[12] = '\0';
}
while (SD.exists(fname));
}
Serial.println(fname);
File dataFile = SD.open(fname, FILE_WRITE);
if (dataFile) //atsidarome faila rasymui
{
id = 1;
time = 0;
while (id!= readsCount) //vykdomas skaitymas kol nebus pasiektas norimas duomenu kiekis
{
if (digitalRead(BUTTON_PIN)==LOW) //tikriname ar mygukas nsupaustas
{
delay(50);
if (digitalRead(BUTTON_PIN)==LOW) //isitikaname ar tai ne koks triuksmas
{
while (digitalRead(BUTTON_PIN)==LOW) { //ir laukiame kol jis bus atleistas
delay(5);
}
dataFile.close(); //baigiamas failo rasymas
return;
}
}
time +=(unsigned long)interval; //dabartinis laikas
dataFile.print(time);
dataFile.print(';');
for (byte i = 14; i<insCount+14; i++) //skaitomas norimas kiekis duomenu
{
temp = analogRead(i);
dataFile.print(temp);
dataFile.print(';');
}
dataFile.println();
id++;
// Serial.print(time);
// Serial.println(';');
digitalWrite(LED_PIN, HIGH); //kol daroma nustatyta pauze ledas dega.
delay(interval);
digitalWrite(LED_PIN, LOW);
}
dataFile.close();
return;
}
}
}boolean readConfig() //konfiguracijos nuskaitymo operaciju funkcija
{
char buffer[32];
int index = 0;
char ch = 0;
File dataFile = SD.open("config.txt", FILE_READ);
if (dataFile) { //atsidaromas failas
Serial.println("Config file opened");
ch = dataFile.read();
while (ch != '\n') //skaitomas pirmas nusktatymas iki Enter
{
buffer[index++] = ch;
ch = dataFile.read();
}
buffer[index++] = '\0';
interval = atoi(buffer); //konvertuojamas nustatymas
ch = dataFile.read();
index = 0;
while (ch != '\n') //skaitomas antras nusktatymas iki Enter
{
buffer[index++] = ch;
ch = dataFile.read();
}
buffer[index++] = '\0';
readsCount = atoi(buffer); //konvertuojamas nustatymas
ch = dataFile.read();
index = 0;
while (ch != '\n') //skaitomas trecias nusktatymas iki Enter
{
buffer[index++] = ch;
ch = dataFile.read();
}
buffer[index++] = '\0';
insCount = atoi(buffer); //konvertuojamas nustatymas
ch = dataFile.read();
index = 0;
while (ch != '\n') //skaitomas trecias nusktatymas iki Enter
{
buffer[index++] = ch;
ch = dataFile.read();
}
buffer[index++] = '\0';
RTCEnable = atoi(buffer); //konvertuojamas nustatymas
dataFile.close();
}
else
{
Serial.println("Config file fail");
return false;
}
}
Man meta klaidą nors prieš tai viskas veikė. Čia loggeris. Iš 5 sensorių renka raw duomenis ir rašo į SD kortelę. Gal sakau kas su time biblioteka?exit status 1
'long unsigned int time' redeclared as different kind of symbol2017/03/30 at 13:49 #15923LukasParticipantNabandei pakeist <Time.h> į <TimeLib.h>?
2017/03/30 at 17:05 #15925agniusmParticipantBandziau, tada kažką kito meta. Sakau, gal biblioteka atnaujinta or dėl to neveikia?
2017/03/30 at 17:25 #15927BuckisParticipantPas mane būna taip kad jei pajungti davikliai įrašyt kodo neina, atjungi įsirašo tada pajungi
2017/03/30 at 21:52 #15929TyroParticipantpamėgink pervadinti “time” (su Replace funkcija) yra kitą pavadinimą (time2 ar pan). Gali būti, kad toje “time.h” viduje yra jau kintamasis tokiu vardu.
Turiu galvoje šį kintamąjį
unsigned long time = 0;
2017/03/31 at 09:19 #15931TyroParticipantSu SD kortelėmis nelabai turėjau reikalų nes nieko nereikėjo, bet iš to kiek susidūriau rekomenduoju naudoti (ypač logų rašymams) ne SD o SDFat biblioteką – ji daug spartesnė ir lengvesnė. Daugumoje nereikia nieko keisti, tik parašyti kitą failą include eilutėje ir veikia su tais pačiais kreipiniais.
2017/03/31 at 11:02 #15932agniusmParticipantGeras su tuo SDfat, ten yra pavyzdys labai spartaus loggerio:
http://forum.arduino.cc/index.php?topic=228549.02017/03/31 at 14:01 #15933agniusmParticipantOK, užteko dadėti TimeLib.h
2017/04/03 at 19:29 #15940agniusmParticipantPasitestavau akumuliatorių, gan įdomus rezultatas. Poliuterano medžiaga veikia labai gerai kaip spyruoklė. Prie 50% suspaudimo gaunu vidutiniškai 1.9kgf į 2.54cm².
Paleidau ant savo kratytuvo, kratytuvas krato akumuliatorių poliuretano suspaudimo kryptimi 2.5 karto per sekundę dažniu, kol akumuliatorius pilnai išsikrauna. Nuosekliame sujungime jokių pokyčių nepastebiu. Kylant akumuliatoriaus temperatūrai, blogėja poliuretano veikimas, bet jis labai neryškus. Jei nekratant jis apie 2kgf/2.54cm²(prie 25C) tai mažiausias apie 1.7kgf/cm²(prie 41C).
Gal kas kokių pastebėjimų turės ir viską aš čia ne taip interpretuoju.
https://drive.google.com/open?id=0B56NVZIdTBFObXhKZE9OTUFmUXM2017/04/03 at 20:12 #15941OldschoolerParticipantTestavimo metodika teisinga, iki pilnos laimės reikėtų klimatinės kameros, kad viską pabandyti didelėj drėgmėj ir kokių 40*C . Beje, kokia kratymo 2,5 Hz dažniu amplitudė?
2017/04/03 at 20:40 #15942agniusmParticipantNa, apie termo kamerą galvojau, bet man prabanga. Ką turi omenyje amplitudė? Buvau pajungęs akselerometrą, bandžiau kalibruoti bet ką gavau nežinau ar teisinga. Grafiko apačioje geltona linija yra greitėjimas m/s2 į vieną kryptį ir atgal. Šiaip jį stebint rodo 0.98G +x ir 1.02 -x tai kaip ir panašu, nžn, aš tais rodmenimis nepasitikiu. Pvz mano naudojamo Rogers firmos poliuretano spaudimas pagal gamintoją yra 76kPa kas yra 0.775kgf/cm² arba 1.968kgf/2.54cm², taigi labai arti.
2017/04/04 at 00:39 #15943OldschoolerParticipant“…Ką turi omenyje amplitudė?…”
Kai drebini bandinį tuo vibratorium, judesys švytuoklinis, ar ne? Vibravimo amplitudė įdomi d/to, kad svarbu, koks vieno sinuso lanke bandinį paveikia pagreitis. Akselerometras- gerai, maždaug leidžia suprast, kokios apkrovos, t.y. beveik atsako į klausimą.
Termo kamera- klimatinė kamera- padaryk improvizuotą, iš poliet. šiukšliamaišio, su verdančiu arbat. virduliu viduj. Per valandą vibravimo karštuose garuose (nepersistenk!) žinosi, ar tropinis klimatas, kaip Kuboj, Havanoj, pav., tavo gaminiui neatsilieps… :)
Miami, Florida, klimatas irgi panašus, o su tokiu produktu, kaip tavoji kontaktinė baterija- garantuotai sudominsi USA rinką !2017/04/04 at 09:04 #15944agniusmParticipantNa tas judesys kiekvienu atveju gausis švytuoklinis kadangi yra periodas, taigi nuos sustojimo iki max greičio or atvirkščiai. O kam toe garai? Nemačiau, kad kas testuotų baterijas garuose, anyway, poliuretanas pats drėgmės daug negeria, didelio drėgnumo aplinkoje 2% Nikelis nelabai reaguos, GFRP vanduo taip pat niekas, lieka celes su kurion nieko negaliu padaryti;)
2017/04/04 at 16:23 #15945OldschoolerParticipantTokie testai- garuose, ir pan. – labiau marketingo reikalas, nei techninis. Baterijos aprašymuose labai gražiai žiūrėtųsi nuorodos i Yutubo klipus, su įvairiu testavimu. Pirkėjui daro įspūdį :) nors objektyviai, tai “izlišestva” .
Žinai gi, kompresiniais kontaktais niekas nepasitiki, aviacijoj nenaudojami išvis, tai teks pergalėt išankstinius nusistatymus…2017/04/04 at 22:30 #15946NemirtingasisParticipantJei nori garantuoti produkto kokybę tai turi atlikti ekstremalius testus, garuose, šaltyje – kameroje ir t.t., tuo labiau, kad kontaktinis variantas nekalia pasitikėjimo, bet jei atliksi tokius testus ir įdėsi video tai pirkėjai tai įvertins ir tai suteiks pasitikėjimo.
O dėl testų, tai tokiai konstrukcijai manau būtų naudinga (ir ne tik dėl savęs) atlikti smūgio-sutrenkimo testus, kitaip sakant staigius siekiančius keletą G smūgius, tam reikėtu kad savo stende pastatytum atramas i kurias atsitrenks stendo judančioji platforma, gausi staigaus ir stipraus smugio imitacijas, kurios pasitaiko važiuojant ir tikrai siekia daugiau nei 0.98G – 1.02G. -
AuthorPosts
- You must be logged in to reply to this topic.