Pages: [1]   Go Down
Author Topic: Felsökning  (Read 1230 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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).

Code:
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
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Här är bilderna:

bild1
http://i35.tinypic.com/29d9u7k.jpg
bild2
http://i36.tinypic.com/30kylu9.jpg
Logged

Sweden, Lund
Offline Offline
Newbie
*
Karma: 0
Posts: 36
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hej

Låter som om det är auto-reset som spökar, testa att inaktivera det.
Läs mer här: http://www.arduino.cc/playground/Main/DisablingAutoResetOnSerialConnection

/Jon
« Last Edit: August 12, 2010, 06:49:01 am by Jonen » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Har gjort som du föreslog och dragit igång den igen. Eftersom den har varit så oregelbunden tidigare så får vi se vad som händer nu. Kan ju potentiellt dröja ganska länge innan jag känner mig säker på att den inte får hicka igen.

Tack så mycket för hjälpen.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

En liten uppdatering av projektet:

Efter att ha avaktiverat auto-reset så har problemet minskats drastiskt. Har dock fortfarande vissa problem med att arduinon på något sätt "tappar räkningen".

Vet inte riktigt vad det beror på, men ska testa att använda mig av en lcd och en annan strömkälla än datorns USB.

Som det ser ut nu så kan jag i alla fall läsa ut tillräckliga testdata, men det irriterar mig att det inte riktigt fungerar som det ska.
Logged

Copenhagen, Denmark
Offline Offline
Edison Member
*
Karma: 26
Posts: 1148
Have you testrun your INO file today?
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sätt inn nåt der skriver "reset" til serial i din setup(), så vet vi at den har gjort en reset.
Du kan også sätta en extra kondensator mellan 5v og gnd pin... om der är nåt i ström tilgången?
Ja, jag gissar också bara lite.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 5
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tror inte det är ett mjukvarufel.

Har du monterat flyback-diod över reläets spole? Eller är det det du menar med "spänningsskydd"? Speciellt vid frånslag skapas höga spänningstoppar som kan störa mikrodaton på alla tänkbara sätt. En digital ingång klara inte mycket överspänning på en mikrodator. En 5.1v zenerdiod på IO:n kan skydda lite mot sådana toppar också.

Korta dippar i din USB-anslutning kan också vara orsaken.
Logged

Pages: [1]   Go Up
Jump to: