Projekt ... Scherbenhaufen oder was ?

Hallo,

mein Projekt mit dem Datalogger ist irgendwie abrupt zu Ende.

Ich habe die letzten Tage am Code nur noch Feinheiten für serielle Ausgaben geändert und 2 externe Dallas Sensoren wieder dazugenommen, Kabel gebaut usw. Alles fertig, alles lief. Zwischendurch immer wieder Feinheiten am Code neu geflasht. Dazu mußte öfters die Aufsteckplatine runtergenommen werden, wegen flashen über mkII Programmer. Die Aufsteckplatine kann man durch Gewindebolzen nicht falsch oder versetzt stecken. Stecker sind verpolungssicher und selbst die waren nie ab.

Zum Schluss wollte ich meine 6 LEDs zum Start als Lauflicht laufen lassen. Einmal hin und zurück. Jetzt klimmen die nur noch.

Hat es den Port vom µC zerschossen? Hat der keine Lust mehr? Hat es ihm bei mir nicht gefallen? Bin ratlos.

Hab dann ein kleines Testprogramm geflasht.

Pins unbelastet. Im Pin LOW Zustand messe ca. 1,5V und im HIGH Zustand ca. 4,9V (Ub).

Belaste ich die Pins mit einem 2k Widerstand messe ich nur noch 0V. ???

Stecke ich die Aufsteckplatine drauf messe ich ca. 1,8V am Pin. Die LED klimmt nur. An den Pins hängen nur low current LEDs mit je 1,5k Vorwiderstand. Was nur 2mA sind. Nur warum klimmt die LED wenn ich mit 2k Last 0V messe? Ich verstehe zur Zeit die elektrische Weltordnung nicht mehr.

Der Rest funktioniert jedoch. Serielle Unterhaltung über BT zum Smartphone, Sensoren auslesen und anzeigen, sogar das speichern der Daten und auslesen von der SD-Karte funktioniert. Nur die LED's zicken rum.

Ist das noch zu retten? Andere Ideen?

const byte _LED_SD_Protect   = 23;   // LED für SD Protect Anzeige 
const byte _BT_Modul_LED     = 25;   // LED Anzeige für Bluetooth Modul ein
const byte _SDcard_aktiv_LED = 27;   // SDcard Aktivitätsanzeige per LED 
const byte _Mess_aktiv       = 29;   // Data Sampling Messungen Aktivitäts LED
const byte _RTC_LED_Alarm    = 31;   // RTC Alarmsignal hat ausgelöst
const byte _Flash_LED        = 33;   // wenn µC im Shutdown Modus, diese LED blitzt zyklisch

void setup()
{
  digitalWrite(_LED_SD_Protect, OUTPUT);	//  23    LED für SD Protect Anzeige 
  digitalWrite(_BT_Modul_LED, OUTPUT);		//  25    LED Anzeige für Bluetooth Modul ein
  digitalWrite(_SDcard_aktiv_LED, OUTPUT);	//  27    SDcard Aktivitätsanzeige per LED an 
  digitalWrite(_Mess_aktiv, OUTPUT);		//  29    Data Sampling Messungen Aktivitäts LED
  digitalWrite(_RTC_LED_Alarm, OUTPUT);		//  31    RTC Alarmsignal hat ausgelöst
  digitalWrite(_Flash_LED, OUTPUT);		//  33    wenn µC im Shutdown Modus, diese LED blitzt zyklisch 
  pinMode(_LED_SD_Protect, LOW);			
  pinMode(_BT_Modul_LED, LOW);		
  pinMode(_SDcard_aktiv_LED, LOW);	
  pinMode(_Mess_aktiv, LOW);			
  pinMode(_RTC_LED_Alarm, LOW);		
  pinMode(_Flash_LED, LOW);	
}

void loop()
{

  Init_LED_Test ();

}

// -------------------------------------------------------- \\
void Init_LED_Test ()  
{
		
	for (int i=23; i<=33; i=i+2)  {
		digitalWrite(i, HIGH);
		delay(5000);
	}
		
	for (int i=33; i>=23; i=i-2)  {
		digitalWrite(i, LOW);
		delay(5000);
	}
	
}

Auf den ersten Blick sieht es danach aus, als hättest du in der setup() mal eben die Bedeutung von pinMode() und digitalWrite() verwechselt...

Hallo,

ach du große Sch... , jetzt wo du es sagst, sehe ich den Mist. Hätte das selbst vor lauter Bäumen nicht gesehen.
Ist mir irgendwie echt peinlich. :cold_sweat:

Zum Glück habe ich den original Code vom Projekt kopiert und gekürzt. Sonst wäre das nicht aufgefallen. Jedenfalls nicht so bzw. so schnell.

Vielen Dank für den prompten Hinweis. Habs sofort korrigiert und er lebt noch. :wink:

Doc_Arduino:
Hallo,

ach du große Sch... , jetzt wo du es sagst, sehe ich den Mist. Hätte das selbst vor lauter Bäumen nicht gesehen.
Ist mir irgendwie echt peinlich. :cold_sweat:

Zum Glück habe ich den original Code vom Projekt kopiert und gekürzt. Sonst wäre das nicht aufgefallen. Jedenfalls nicht so bzw. so schnell.

Vielen Dank für den prompten Hinweis. Habs sofort korrigiert und er lebt noch. :wink:

Das passiert jedem der zu lange an einer Sache hängt, mach dir nix draus, passiert mir ständig :stuck_out_tongue_closed_eyes:

Die Pins waren im Prinzip als INPUT_PULLUP definiert (Eingang und High). Deshalb wahrscheinlich das leichte glimmen über die hochohmigen Pullup-Widerstände

Hallo,

das Projekt habe ich vor ca. 2 Jahren angefangen. Der Code nimmt 41kB ein und knapp 1,9kB RAM.
Jetzt mach ich nur noch Feinschliff wie erwähnt. Am eigentlichen Code ändere ich nichts mehr. Es kam jedenfalls nichts neues dazu was nicht schon vorher mal lief. Eigentlich nur noch Spielereien während der härteren Testphase. Das Tiefkühlfach hat er ja auch überlebt, eingetütet.

Ich hätte noch ein Backup der vorherigen Version flashen können. Das hätte demnach wieder funktioniert. Ob ich aber meinen Fehler gesehen hätte ... denke eher nicht. :cold_sweat:

Ich dachte echt für paar Stunden mein angepaßter Mega wäre von mir gegangen. Hatte schon meine Platine alleine komplett durchgemessen, fehlerfrei, funktionstüchtig.

Ungewollter Pullup. Ja. :slight_smile:

Ende gut alles gut.

Sorry, wenn ich es nicht mitbekommen habe, Du versionierst doch Deine Sketche oder nicht ??

Hallo,

ja mache ich. Nur wer denkt bei der simplen Erweiterung mit Standardbefehlen die man eigentlich im schlaf beherrschen sollte an einen Codefehler? Irgendwann hätte ich bestimmt eine vorherige Version geflasht. Aber sicher nicht gestern, heute oder morgen. Auf den Codefehler muß man erstmal kommen, wenn man im Wald steht. Sieht ähnlich aus und der Compiler meckert nicht.

Doc_Arduino:
Hallo,

ja mache ich. Nur wer denkt bei der simplen Erweiterung mit Standardbefehlen die man eigentlich im schlaf beherrschen sollte an einen Codefehler? Irgendwann hätte ich bestimmt eine vorherige Version geflasht. Aber sicher nicht gestern, heute oder morgen. Auf den Codefehler muß man erstmal kommen, wenn man im Wald steht. Sieht ähnlich aus und der Compiler meckert nicht.

Man sieht vor lauter Bits die Bytes nicht mehr :grin: