Offline
Newbie
Karma: 0
Posts: 21
|
 |
« on: June 07, 2012, 09:23:14 am » |
Hallo zusammen,
ich habe mein Projekt fertig uns es läuft einwandfrei. Nun möchte ich dass das Programm ohne am USB zu hängen anfängt das Programm abzuspielen. Das Passiert aber nur wenn ich den Resetknopf betätige.
Muss man den Sketch anders auf den Arduino laden, wenn dieser sofort nach Spannung anlegen beginnen soll?
Ich hab einen Arduino Mega 2560 Rev 3. An Vin hab ich 5V angelegt.
Danke im Voraus
Karlsa
|
|
|
|
|
Logged
|
|
|
|
|
NRW
Offline
Sr. Member
Karma: 1
Posts: 373
|
 |
« Reply #1 on: June 07, 2012, 10:03:33 am » |
Sollte immer automatisch passieren. Zeig mal deinen Code!
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 21
|
 |
« Reply #2 on: June 07, 2012, 10:16:10 am » |
int typ = 1; //1 = One Laser Diode, 2 = Two Laser Diode
//Encoder****************************************** byte speicherA = 0; byte speicherB = 0;
int stellungA; int stellungB;
int A = 34; int B = 36; byte auswahl = 0; byte auswahl_typ2 = 0; // wenn typ = 2, bei menue ACC int menue = 0, status = 0, optionen = 0; //*************************************************
boolean message_receive = false;
//************************************************* char buf[10] = {0};
char ACC_Send[] = {0}; float valueACC = 0; float bufACC = 0;
char APC_Send[] = {0}; float valueAPC = 0; float bufAPC = 0;
char AGC_Send[] = {0}; float valueAGC = 0; float bufAGC = 0;
//************************************************* int counter = 0;
int fan = 4;
int zero = 0x00; // 0 hex ans Display senden
byte change = 0;
int back = 42; int back_led = 44; int enter = 38; int pump = 40; int pump_led = 46;
int i, k;
void setup() { Serial1.begin(9600);//Diplay Serial2.begin(9600);//EDFA pinMode(back, INPUT); digitalWrite(back, HIGH); pinMode(enter, INPUT); pinMode(A, INPUT); digitalWrite(A, HIGH); pinMode(B, INPUT); digitalWrite(B, HIGH); pinMode(back_led, OUTPUT); pinMode(pump_led, OUTPUT); pinMode(fan, OUTPUT); digitalWrite(fan, LOW); attachInterrupt(0, ReadTemp, RISING); DisplayIni(); Serial1.begin(115200); start();
}
void loop() { char current[20] = {0}; char powerIn[30] = {0}; char powerOut[30] = {0}; unsigned long time = 0; while(1) { menueWahl();
if (millis() >= 1000 + time) { if (menue == 0 || menue == 1) getValue("LC 1", 0x03, 0x04, "LD current:", 8, current); getPower(0x07, 0x06, powerIn, powerOut); time = millis(); } if (auswahl == 0 && digitalRead(enter) == HIGH) { while(digitalRead(enter) == HIGH); setValue(current, powerIn, powerOut); } if (auswahl == 1 && digitalRead(enter) == HIGH && millis() <= 1000 + time) { while(digitalRead(enter) == HIGH); time = showMenue(); } if (auswahl == 2 && digitalRead(enter) == HIGH) { while(digitalRead(enter) == HIGH); showStatus(); } if (auswahl == 3 && digitalRead(enter) == HIGH) { while(digitalRead(enter) == HIGH); showOptions(); } if (digitalRead(pump) == HIGH) { if (menue == 1) startPump("APC", current, powerIn, powerOut); else if (menue == 2) startPump("ACC", current, powerIn, powerOut); else if (menue == 0) startPump("AGC", current, powerIn, powerOut); } } } // Funktionen
void start() { char apc[20] = {0}; ClearDisplay(); while (Serial2.available() > 0) Serial2.read(); getValue("APC", 0x03, 0x01, "Power Out:", 5, apc); Ausgabe(0x03, 0x06, "Pi:"); Ausgabe(0x03, 0x08, "Po:"); Ausgabe(0x03, 0x0B, "APC"); Ausgabe(0x09, 0x0B, "Status"); Ausgabe(0x12, 0x0B, "Optionen"); menue = 1;
valueAPC = atof(apc); bufAPC = valueAPC; } void menueWahl() { if (digitalRead(A)==HIGH && digitalRead(B)==LOW && speicherA==0 && speicherB==0) { auswahl++; auswahl_typ2++; auswahl %= 4; auswahl_typ2 %= 5; speicherA=1; speicherB=0; } else if (digitalRead(A)==HIGH && digitalRead(B)==HIGH && speicherA==1 && speicherB==0) { auswahl++; auswahl_typ2++; auswahl %= 4; auswahl_typ2 %= 5; speicherA=1; speicherB=1; } else if (digitalRead(A)==LOW && digitalRead(B)==HIGH && speicherA==1 && speicherB==1 ) { auswahl++; auswahl_typ2++; auswahl %= 4; auswahl_typ2 %= 5; speicherA=0; speicherB=1; } else if (digitalRead(A)==LOW && digitalRead(B)==LOW && speicherA==0 && speicherB==1 ) { auswahl++; auswahl_typ2++; auswahl %= 4; auswahl_typ2 %= 5; speicherA=0; speicherB=0; } else if (digitalRead(A)==LOW && digitalRead(B)==HIGH && speicherA==0 && speicherB==0) { auswahl--; auswahl_typ2--; auswahl %= 4; auswahl_typ2 %= 5; speicherA=0; speicherB=1; } else if (digitalRead(A)==HIGH && digitalRead(B)==HIGH && speicherA==0 && speicherB==1) { auswahl--; auswahl_typ2--; auswahl %= 4; auswahl_typ2 %= 5; speicherA=1; speicherB=1; } else if (digitalRead(A)==HIGH && digitalRead(B)==LOW && speicherA==1 && speicherB==1) { auswahl--; auswahl_typ2--; auswahl %= 4; auswahl_typ2 %= 5; speicherA=1; speicherB=0; } else if (digitalRead(A)==LOW && digitalRead(B)==LOW && speicherA==1 && speicherB==0) { auswahl--; auswahl_typ2--; auswahl %= 4; auswahl_typ2 %= 5; speicherA=0; speicherB=0; } if (typ == 1 || typ == 2 && menue == 1 || typ == 2 && menue == 0) { if (auswahl == 0) { Ausgabe(0x01, 0x01, "->"); AusgabeLoeschen(0x01, 0x0B, "->"); AusgabeLoeschen(0x10, 0x0B, "->"); } else if (auswahl == 1) { Ausgabe(0x01, 0x0B, "->"); AusgabeLoeschen(0x01, 0x01, "->"); AusgabeLoeschen(0x07, 0x0B, "->"); } else if (auswahl == 2) { Ausgabe(0x07, 0x0B, "->"); AusgabeLoeschen(0x01, 0x0B, "->"); AusgabeLoeschen(0x10, 0x0B, "->"); } else if (auswahl == 3) { Ausgabe(0x10, 0x0B, "->"); AusgabeLoeschen(0x07, 0x0B, "->"); AusgabeLoeschen(0x01, 0x01, "->"); } } else if (typ == 2 && menue == 2) { if (auswahl_typ2 == 0) { Ausgabe(0x01, 0x01, "->"); AusgabeLoeschen(0x01, 0x03, "->"); AusgabeLoeschen(0x10, 0x0B, "->"); } else if (auswahl_typ2 == 1) { Ausgabe(0x01, 0x03, "->"); AusgabeLoeschen(0x01, 0x01, "->"); AusgabeLoeschen(0x01, 0x0B, "->"); } else if (auswahl_typ2 == 2) { Ausgabe(0x01, 0x0B, "->"); AusgabeLoeschen(0x01, 0x03, "->"); AusgabeLoeschen(0x07, 0x0B, "->"); } else if (auswahl_typ2 == 3) { Ausgabe(0x07, 0x0B, "->"); AusgabeLoeschen(0x01, 0x0B, "->"); AusgabeLoeschen(0x10, 0x0B, "->"); } else if (auswahl_typ2 == 4) { Ausgabe(0x10, 0x0B, "->"); AusgabeLoeschen(0x07, 0x0B, "->"); AusgabeLoeschen(0x01, 0x01, "->"); } } }
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 21
|
 |
« Reply #3 on: June 07, 2012, 10:17:54 am » |
unsigned long showMenue() { char apc[20] = {0}; char acc1[20] = {0}; char agc[20] = {0}; char current[20] = {0}; if (menue == 0) { ClearDisplay(); getValue("APC", 0x03, 0x01, "Power Out:", 5, apc); Ausgabe(0x03, 0x06, "Pi:"); Ausgabe(0x03, 0x08, "Po:"); Ausgabe(0x03, 0x0B, "APC"); Ausgabe(0x09, 0x0B, "Status"); Ausgabe(0x12, 0x0B, "Optionen"); menue = 1; } else if (menue == 1) { ClearDisplay(); if (typ == 1) { getValue("ACC 1", 0x03, 0x01, "LD current:", 8, acc1); Ausgabe(0x03, 0x06, "Pi:"); Ausgabe(0x03, 0x08, "Po:"); Ausgabe(0x03, 0x0B, "ACC"); Ausgabe(0x09, 0x0B, "Status"); Ausgabe(0x12, 0x0B, "Optionen"); menue = 2;
valueACC = atof(acc1); bufACC = valueACC;
} else if (typ == 2) { Ausgabe(0x03, 0x01, "Laser Diode 1:"); delay(10); Ausgabe(0x03, 0x03, "Laser Diode 2:"); Ausgabe(0x03, 0x06, "Pi:"); Ausgabe(0x03, 0x08, "Po:"); Ausgabe(0x03, 0x0B, "ACC"); Ausgabe(0x09, 0x0B, "Status"); Ausgabe(0x12, 0x0B, "Optionen"); menue = 2; } } else if (menue == 2) { ClearDisplay(); getValue("AGC", 0x03, 0x01, "Gain:", 5, agc); Ausgabe(0x03, 0x06, "Pi:"); Ausgabe(0x03, 0x08, "Po:"); Ausgabe(0x03, 0x0B, "AGC"); Ausgabe(0x09, 0x0B, "Status"); Ausgabe(0x12, 0x0B, "Optionen"); menue = 0; valueAGC = atof(agc); bufAGC = valueAGC; } return millis(); }
void setValue(char* saveCurrent, char* Pi, char* Po) { char apc[20] = {0}; char acc1[20] = {0}; char agc[20] = {0}; char current[20] = {0}; char powerIn[30] = {0}; char powerOut[30] = {0}; unsigned long time; strcpy(current, saveCurrent); strcpy(powerIn, Pi); strcpy(powerOut, Po); AusgabeLoeschen(0x01, 0x01, "->"); Ausgabe(0x01, 0x01, "<-"); change = 1; dtostrf(valueAPC, 3, 1, apc); dtostrf(valueACC, 3, 1, acc1); dtostrf(valueAGC, 3, 1, agc); while (digitalRead(enter) == HIGH); time = millis(); while (change == 1) { if (menue == 1) { if (millis() >= 1000 + time) { if (menue == 0 || menue == 1) getValue("LC 1", 0x03, 0x04, "LD current:", 8, current); getPower(0x07, 0x06, powerIn, powerOut); time = millis(); } valueAPC = changeValue("APC");
if (bufAPC != valueAPC) {
dtostrf(valueAPC, 3, 1, buf); sprintf(APC_Send, "APC %s", buf); Serial2.println(APC_Send); delay(45); while(Serial2.available() > 0) Serial2.read();
getValue("APC", 0x03, 0x01, "Power Out:", 5, apc); valueAPC = atof(apc); bufAPC = valueAPC; } } else if (menue == 2) { if (millis() >= 1000 + time) { if (menue == 0 || menue == 1) getValue("LC 1", 0x03, 0x04, "LD current:", 8, current); getPower(0x07, 0x06, powerIn, powerOut); time = millis(); } valueACC = changeValue("ACC"); if (bufACC != valueACC) { dtostrf(valueACC, 3, 1, buf); sprintf(ACC_Send, "ACC 1 %s", buf); Serial2.println(ACC_Send); delay(45); while(Serial2.available() > 0) Serial2.read(); getValue("ACC 1", 0x03, 0x01, "LD current:", 8, acc1); valueACC = atof(acc1); bufACC = valueACC; } } else if (menue == 0) { if (millis() >= 1000 + time) { if (menue == 0 || menue == 1) getValue("LC 1", 0x03, 0x04, "LD current:", 8, current); getPower(0x07, 0x06, powerIn, powerOut); time = millis(); } valueAGC = changeValue("AGC"); if (bufAGC != valueAGC) { dtostrf(valueAGC, 3, 1, buf); sprintf(AGC_Send, "AGC %s", buf); Serial2.println(AGC_Send); delay(45); while(Serial2.available() > 0) Serial2.read(); getValue("AGC", 0x03, 0x01, "Gain:", 5, agc); valueAGC = atof(agc); bufAGC = valueAGC; } } if (digitalRead(enter) == HIGH) { while (digitalRead(enter) == HIGH); AusgabeLoeschen(0x01, 0x01, "<-"); change = 0; } } strcpy(saveCurrent, current); strcpy(Pi, powerIn); strcpy(Po, powerOut); }
}
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 21
|
 |
« Reply #4 on: June 07, 2012, 10:18:49 am » |
float changeValue(char* modus) { int last; float value; if (modus == "APC") value = valueAPC; else if (modus == "ACC") value = valueACC; else if (modus == "AGC") value = valueAGC; if (last == 1) while(digitalRead(A)!=HIGH && digitalRead(B)!=LOW); else if (last == 2) while(digitalRead(A)!=HIGH && digitalRead(B)!=HIGH); else if (last == 3) while(digitalRead(A)!=LOW && digitalRead(B)!=LOW); else if (last == 4) while(digitalRead(A)!=LOW && digitalRead(B)!=LOW); else if (last == 5) while(digitalRead(A)!=LOW && digitalRead(B)!=HIGH); else if (last == 6) while(digitalRead(A)!=HIGH && digitalRead(B)!=HIGH); else if (last == 7) while(digitalRead(A)!=HIGH && digitalRead(B)!=LOW); else if (last == 8) while(digitalRead(A)!=LOW && digitalRead(B)!=LOW);
if (digitalRead(A)==HIGH && digitalRead(B)==LOW && speicherA==0 && speicherB==0) { if (menue == 1 || menue == 0) { if (digitalRead(back) == LOW) value += 1.0; else value +=0.1; } if (menue == 2) { if (digitalRead(back) == LOW) value += 10.0; else value +=1; } speicherA=1; speicherB=0; last = 1; } else if (digitalRead(A)==HIGH && digitalRead(B)==HIGH && speicherA==1 && speicherB==0) { if (menue == 1 || menue == 0) { if (digitalRead(back) == LOW) value += 1.0; else value +=0.1; } if (menue == 2) { if (digitalRead(back) == LOW) value += 10.0; else value +=1; } speicherA=1; speicherB=1; last = 2; } else if (digitalRead(A)==LOW && digitalRead(B)==HIGH && speicherA==1 && speicherB==1) { if (menue == 1 || menue == 0) { if (digitalRead(back) == LOW) value += 1.0; else value +=0.1; } if (menue == 2) { if (digitalRead(back) == LOW) value += 10.0; else value +=1; } speicherA=0; speicherB=1; last = 3; } else if (digitalRead(A)==LOW && digitalRead(B)==LOW && speicherA==0 && speicherB==1) { if (menue == 1 || menue == 0) { if (digitalRead(back) == LOW) value += 1.0; else value +=0.1; } if (menue == 2) { if (digitalRead(back) == LOW) value += 10.0; else value +=1; } speicherA=0; speicherB=0; last = 4; } else if (digitalRead(A)==LOW && digitalRead(B)==HIGH && speicherA==0 && speicherB==0) { if (menue == 1 || menue == 0) { if (digitalRead(back) == LOW) value -= 1.0; else value -=0.1; } if (menue == 2) { if (digitalRead(back) == LOW) value -= 10.0; else value -=1; } speicherA=0; speicherB=1; last = 5; } else if (digitalRead(A)==HIGH && digitalRead(B)==HIGH && speicherA==0 && speicherB==1) { if (menue == 1 || menue == 0) { if (digitalRead(back) == LOW) value -= 1.0; else value -=0.1; } if (menue == 2) { if (digitalRead(back) == LOW) value -= 10.0; else value -=1; } speicherA=1; speicherB=1; last = 6; } else if (digitalRead(A)==HIGH && digitalRead(B)==LOW && speicherA==1 && speicherB==1) { if (menue == 1 || menue == 0) { if (digitalRead(back) == LOW) value -= 1.0; else value -=0.1; } if (menue == 2) { if (digitalRead(back) == LOW) value -= 10.0; else value -=1; } speicherA=1; speicherB=0; last = 7; } else if (digitalRead(A)==LOW && digitalRead(B)==LOW && speicherA==1 && speicherB==0) { if (menue == 1 || menue == 0) { if (digitalRead(back) == LOW) value -= 1.0; else value -=0.1; } if (menue == 2) { if (digitalRead(back) == LOW) value -= 10.0; else value -=1; } speicherA=0; speicherB=0; last = 8; } return value; }
void startPump(char* modus, char* saveCurrent, char* Pi, char* Po) { char checkModus[10] = {0}; char current[20] = {0}; char powerIn[30] = {0}; char powerOut[30] = {0}; unsigned long time; strcpy(current, saveCurrent); strcpy(powerIn, Pi); strcpy(powerOut, Po); while (digitalRead(pump) == HIGH); time = millis(); if (modus == "APC") { do { counter = 0; Serial2.println("AM P"); delay(50); while (Serial2.available() >0) checkModus[counter++] = Serial2.read(); } while (checkModus[0] != 'A' && checkModus[1] != 'M' && checkModus[3] != 'P'); }
else if (modus == "ACC") { do { counter = 0; Serial2.println("AM C"); delay(50); while (Serial2.available() >0) checkModus[counter++] = Serial2.read(); } while (checkModus[0] != 'A' && checkModus[1] != 'M' && checkModus[3] != 'C'); } else if (modus == "AGC") { do { counter = 0; Serial2.println("AM G"); delay(50); while (Serial2.available() >0) checkModus[counter++] = Serial2.read(); } while (checkModus[0] != 'A' && checkModus[1] != 'M' && checkModus[3] != 'G'); } digitalWrite(pump_led, HIGH); do { if (millis() >= 1000 + time) { if (menue == 0 || menue == 1) getValue("LC 1", 0x03, 0x04, "LD current:", 8, current); getPower(0x07, 0x06, powerIn, powerOut); time = millis(); } menueWahl(); if (digitalRead(enter) == HIGH && auswahl == 2) { while(digitalRead(enter) == HIGH); showStatus(); } if (auswahl == 0 && digitalRead(enter) == HIGH) { while(digitalRead(enter) == HIGH); setValue(current, powerIn, powerOut); } } while(digitalRead(pump) == LOW); strcpy(saveCurrent, current); strcpy(Pi, powerIn); strcpy(Po, powerOut); do { counter = 0; Serial2.println("AM O"); delay(50); while (Serial2.available() >0) checkModus[counter++] = Serial2.read(); } while (checkModus[0] != 'A' && checkModus[1] != 'M' && checkModus[3] != 'O'); digitalWrite(pump_led, LOW);
while(digitalRead(pump) != LOW); }
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 21
|
 |
« Reply #5 on: June 07, 2012, 10:19:42 am » |
void showStatus() { char tec[10] = {0}; char ld_Temp[10] = {0}; char power[10] = {0}; char case_Temp[10] = {0}; unsigned long time = millis(); ClearDisplay();
do { if (millis() >= 1000 + time) { Ausgabe(0x02, 0x01, "Status:"); getValue("HA 1", 0x02, 0x04, "TEC:", 8, tec); delay(10); getValue("LT 1", 0x02, 0x06, "LD Temp:", 8, ld_Temp); delay(10); getValue("LP 1", 0x02, 0x08, "L. Power:", 8, power); delay(10); getValue("IT", 0x02, 0x0A, "Case Temp:", 6, case_Temp); delay(10); } } while (digitalRead(back) == LOW); switch(menue) { case 0: menue = 2; break; case 1: menue = 0; break; case 2: menue = 1; break; } showMenue(); while (digitalRead(back) == HIGH); } void showOptions() {
}
void getValue(char* command, int y, int x, char* text, int a, char* save) { int b; int len = strlen(text); char value[30] = {0};
while (message_receive == false) { counter = 0; Serial2.println(command); delay(45); while (Serial2.available() > 0) { value[counter++] = Serial2.read(); } if (value[0] == 'F' && value[1] == 'W' && value[2] == 'C') message_receive = false; else message_receive = true; } for(a, b = 0; value[a] != '\r'; a++, b++) value[b] = value[a]; value[b] = '\0';
if (strcmp(save, value) != 0) { Ausgabe(y, x, text); AusgabeLoeschen(y+len+1, x, save); Ausgabe(y+len+1, x, value); } else { Ausgabe(y, x, text); Ausgabe(y+len+1, x, value); } message_receive = false;
strcpy(save, value); } void getPower(int y, int x, char* Pi, char* Po) { char power[50] = {0}; char powerIn[30] = {0}; char powerOut[30] = {0}; while (message_receive == false) { counter = 0; Serial2.println("PH"); delay(100); while (Serial2.available() > 0) { power[counter++] = Serial2.read(); } if ( power[0] == 'P' && power[1] == 'D' && power[2] == 'M') message_receive = true; else message_receive = false; }
for (i = 6, k = 0; power[i] != '\r'; i++, k++) powerIn[k] = power[i]; powerIn[k] = '\0'; for (i = i + 8, k = 0; power[i] != '\r'; i++, k++) powerOut[k] = power[i]; powerOut[k] = '\0';
if (strcmp(powerIn, Pi) != 0) { AusgabeLoeschen(y, x, Pi); delay(10); Ausgabe(y, x, powerIn); } else Ausgabe(y, x, powerIn); delay(10); if (strcmp(powerOut, Po) != 0) { AusgabeLoeschen(y, x + 2, Po); delay(10); Ausgabe(y, x + 2, powerOut); } else Ausgabe(y, x + 2, powerOut); message_receive = false; strcpy(Pi, powerIn); strcpy(Po, powerOut); }
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 21
|
 |
« Reply #6 on: June 07, 2012, 10:19:56 am » |
// Display-Funktionen void DisplayIni() { DisplayVerbinden(); ClearDisplay(); DisplayHintergrund(); DisplayDrehen(); SetBaudDisplay(); }
void Ausgabe(int y, int x, char* text) { Serial1.write(0x73); Serial1.write(y); Serial1.write(x); Serial1.write(0x03); Serial1.write(zero); Serial1.write(zero); Serial1.write(text); Serial1.write(zero); delay(10); } void AusgabeLoeschen(int y, int x, char* zeichen) { Serial1.write(0x73); Serial1.write(y); Serial1.write(x); Serial1.write(0x03); Serial1.write(0xFF); Serial1.write(0xFF); Serial1.write(zeichen); Serial1.write(zero); delay(10); }
void DisplayVerbinden() { Serial1.write(0x55); delay(100); }
void ClearDisplay() { Serial1.write(0x45); delay(100); }
void DisplayHintergrund() { Serial1.write(0x42); Serial1.write(0xFF); Serial1.write(0xFF); delay(3000); }
void DisplayDrehen() { Serial1.write(0x59); Serial1.write(0x04); Serial1.write(0x02); delay(100); } void SetBaudDisplay() { Serial1.write(0x51); Serial1.write(0x0D); delay(1000); }
// Interrupt
void ReadTemp() { if (digitalRead(fan) == LOW) { digitalWrite(fan, HIGH); attachInterrupt(0, ReadTemp, FALLING); } else { digitalWrite(fan, LOW); attachInterrupt(0, ReadTemp, RISING); } }
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 21
|
 |
« Reply #7 on: June 07, 2012, 10:20:48 am » |
Sorry ist halt ein großes Projekt  Aber im Code kann ja eigentlich nichts falsch sein, sonst würde es ja auch nicht starten wenn ich Reset drücke.
|
|
|
|
|
Logged
|
|
|
|
|
Germany
Offline
Edison Member
Karma: 33
Posts: 1788
Arduino rocks
|
 |
« Reply #8 on: June 07, 2012, 10:46:48 am » |
Bist du sicher, dass du 5V an Vin angeschlossen hast? Das dürfte zu wenig sein, erklärt allerdings nicht das merkwürdige Verhalten. Wenn die Versorgungsspannung 5V beträgt musst du "hinter" dem Spannungsregler rein, also am 5V-Pin.
|
|
|
|
|
Logged
|
|
|
|
|
Wien
Offline
God Member
Karma: 9
Posts: 772
|
 |
« Reply #9 on: June 07, 2012, 12:35:42 pm » |
hi,
ich würde versuchen, festzustellen, ob es am sketch liegt. lade doch mal das blink-beispiel rauf, und schau, ob es startet.
gruß, stefan
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
BZ (I)
Offline
Brattain Member
Karma: 160
Posts: 15619
+39 349 2158303
|
 |
« Reply #10 on: June 07, 2012, 01:18:57 pm » |
Hallo zusammen,
ich habe mein Projekt fertig uns es läuft einwandfrei. Nun möchte ich dass das Programm ohne am USB zu hängen anfängt das Programm abzuspielen. Das Passiert aber nur wenn ich den Resetknopf betätige.
Muss man den Sketch anders auf den Arduino laden, wenn dieser sofort nach Spannung anlegen beginnen soll?
Ich hab einen Arduino Mega 2560 Rev 3. An Vin hab ich 5V angelegt.
Danke im Voraus
Karlsa
Wie sth77 sagt bruacht das Vin mindestens 7V. Wenn Du den Arduino mit 5V versorgen willst dann mußt Du die 5V auf das 5V pin geben oder über einen USB-Kabel auf die USB Buchse. Des weiteren ist mir bei einem Arduino Nano passiert, daß ich einen zu großen Kondensator (470µF) auf die Versorgungspannung angeschlossen habe und darum dieser nicht gestartet ist. Viele Grüße Uwe
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 21
|
 |
« Reply #11 on: June 08, 2012, 10:52:16 am » |
So hab jetzt mal den Pin getauscht und es hat nichts gebracht. Hab mir dann gedacht, dass es sein kann die der Arduino zu schnell ist und deshalb er sich nicht mit dem Display synchronisiert. Hab dann mal auf nen Taster gedrückt und siehe da...LED geht an. Also muss ich jetzt nur gucken, dass der Arduino so lang wartet bis er mit dem Display Kommunizieren kann. Ich danke euch für die Tipps. Und ich werde mich nochmal melden Falls das wirklich das Problem war. Ich hoffe es, hab nächste Woche abgabe meines Projektes in der Schule  Viel Grüße Sascha
|
|
|
|
|
Logged
|
|
|
|
|
|