Hejsan,
Jag är helt ny både på forumet och på arduino i största allmänhet. Jag håller på att bygga en enkel testrigg för att testa hur länge olika typer av batterier klarar av att driva en solenoid. Själva riggen består av ett arduino duemilanove-kort med screwshield monterat på, ett simpelt breadboard, ett relä med spänningsskydd, en solenoid och en mikrobrytare. Själva arduinokretsen drivs av USB och solenoiden drivs av batterier. (kika på bilderna för att få en lite bättre uppfattning av hur det hela ser ut)
Programmet ska testa att aktivera solenoiden en gång varannan minut. Den ska vara aktiverad tre sekunder varje gång och mikrobrytaren registrerar att den faktiskt flyttat kärnan och den arm som är ansluten till kärnan. Jag vill sen att programmet ska skriva ut antalet cykler (antal gånger mikrobrytaren ändrat läge).
const int pin7 = 7;
const int pin8 = 8;
int alreadyRead = 0;
int count = 0;
boolean coilUse = true;
unsigned long foo = 0;
void setup() {
pinMode(pin7, OUTPUT);
pinMode(pin8, INPUT);
Serial.begin(9600);
}
void loop() {
int var = digitalRead(pin8);
if (var == HIGH) {
if (alreadyRead == 0) {
Serial.print("Antal: ");
Serial.println(++count);
alreadyRead = 1;
}
}else{
alreadyRead = 0;
}
if (millis() - foo >= 120000 && coilUse) {
foo = millis();
coilUse = false;
digitalWrite(pin7, HIGH);
}else if(millis() - foo >= 3000 && !coilUse) {
foo = millis();
coilUse = true;
digitalWrite(pin7, LOW);
}
}
Jag har fått de grundläggande funktionerna att fungera. Solenoiden aktiveras och jag får ut antalet gånger på datorn i serial monitor. Tanken är att arduinon ska köra på i ett par dagar tills batteriet är så pass urladdat att solenoiden inte längre drar och jag kan komma och läsa av antalet slutförda cykler.
Så till mitt problem:
Efter ett antal timmar så startar arduinon om, eller i alla fall så startar räknaren på datorn om. För mig verkar det som att det är helt slumpmässigt. Den stannar på olika antal varje gång, någon gång har den gått upp emot 500 gånger och någon gång har den stannat under tio gånger.
Den slutar inte att räkna utan börjar om från 0 så lite data har jag kunnat få ut. Det hela är dock inte särskilt praktiskt.
Jag har testat att byta arduinokort, batterierna är testade, alla kablar är utbytta och kontrollerade. Jag har även försökt att driva allt utom solenoiden med en annan strömkälla än datorns USB.
Jag vet att felsökning är svårt och ännu svårare på distans när man inte har sakerna framför sig men jag har verkligen kört fast. Jag har bara väldigt grundläggande kunskaper inom både programmering och elektronik så jag tänkte att någon här kanske kan hjälpa om det är något enkelt fel jag lyckats missa.
Tack på förhand
/Rawh