• Hallo Zusammen, Aufgrund der aktuellen Situation setzten wir die Möglichkeit aus, sich mit Gmail zu registrieren. Wir bitten um Verständnis Das RCMP Team

Tech-Frage 4 fach LED-Blitzer mit ATTiny für RC-LKW

Chesleyn

Mitglied
Hey Norbert,

ok, wie hast es du dir gedacht? Ich denke mal!!! Um Pin zu Sparen könnte man das Programm des Luflichts doch auch in ein Attiny packen.
Wenn ich das richtig denke habe ich mit den Analogen Pins ( 6 Analoge auf dem Nano ) 17 Pins, wenn ich die TX,RX abziehe.
 
Zuletzt bearbeitet:

BAXL

Admin
Mitarbeiter
Neee, der ATTiny bleibt erstmal außen vor :). Was willst Du denn mit den analogen Pins beim Arduino, das sind reine Eingänge um eine Spannung zu messen. Die Anzahl der Digitalkanäle auf dem Nano reicht dicke aus. Wenn wir jetzt mit dem Tiny anfangen, verkomplizieren wir das Ganze, Du bist derzeit ja beim Nano noch etwas am eiern, beim Tiny wird das nicht besser. Ich weiß, Du hast die Teile jetzt da liegen, die fressen aber kein Brot und sind Morgen auch noch da. Nicht wieder ungeduldig werden und den zweiten Schritt vorm ersten machen wollen ;).

Wir kommen da auch noch hin. Was nützt es Dir denn, wenn Du mit dem Nano noch nicht richtig klar kommst.
 

BAXL

Admin
Mitarbeiter
So, ich lege jetzt mal fest, dass Pin 12 und 13 für Blinker links und Blinker rechts sind. Pin 8 bis 11 ist dann für das Blitzlicht. Macht 6 Pins und wir haben immer noch welche übrig :).

Die Dauerbeleuchtung, wenn Du das unbedingt über einen Arduinopin steuern willst, ist dann Pin 7, der aber schon beim Programmstart eingeschaltet wird und eingeschaltet bleibt.

Wir müssen aber noch sehen wie wir das mit der Hardware machen, wenn mehr als zwei LEDs angeschlossen werden soll, da kann sicher Hermann weiterhelfen. Das Einfachste wird sein, dafür jeweils einen Transistor zu nehmen. Ihr Einsatz Al Hermann!

Ich überlege mir mal, wie wir das mit der Parallelverarbeitung hinbekommen.
 

Chesleyn

Mitglied
ich hab nur gedacht. Ich hätte nicht davon anfangen sollen.

Mit rumeriern hast Recht, mit dem Blinken ohne delay Rall ich noch nicht.
Das Prinzip habe ich Verstanden. Aber irgenwie weiß ich nicht wie ich
das bei mir als Program schreiben muss. Ich bin Auto Didagtisch
veranlagt
 

BAXL

Admin
Mitarbeiter
ich hab nur gedacht. Ich hätte nicht davon anfangen sollen.

Mit rumeriern hast Recht, mit dem Blinken ohne delay Rall ich noch nicht.
Das Prinzip habe ich Verstanden. Aber irgenwie weiß ich nicht wie ich
das bei mir als Program schreiben muss. Ich bin Auto Didagtisch
veranlagt
Um delay durch millis() zu ersetzen müssen ein paar Zeilen Programmcode geschrieben werden. Wir müssen ja an einer geschickten Stelle eine Abfrage der Systemuhr einbauen und dann eine Programmverzweigung programmieren, die jeweils die Blinker (nicht Blitzer) LEDs ein und wieder ausschaltet.
 

BAXL

Admin
Mitarbeiter
@Chesleyn Hey Ches, wie läuft es bei Dir? Bist Du schon weitergekommen? Bei mir ist in der Sache im Moment eine kreative Phase des Nachdenkens.
 

BAXL

Admin
Mitarbeiter
Wollen wir vielleicht wieder zuerst etwas ganz Simples damit machen? Also eine LED, die immer ganz kurz blitzt und eine, die ganz normal wie ein Blinker blinkt.
 

BAXL

Admin
Mitarbeiter
Na klar, der Norbert muss aber auch mal arbeiten:) ich bin noch nicht in Rente und bin gerade erst nachhause gekommen.
 

BAXL

Admin
Mitarbeiter
Wenn ich so schon mal tagsüber poste dann sitze ich nicht immer vor dem PC, mit dem ich die Arduino Programme schreibe und teste. Dann nehme ich mein Smartphone zum Antworten.
 

Chesleyn

Mitglied
Hallo Norbert,

Ok, habe Verstanden. War nur nee Frage. Entschuldigung. Ich wünsche dir noch einen schönen Abend.

Gruß Ches
 

BAXL

Admin
Mitarbeiter
Gut. Wir werden das jetzt so machen, dass wir mit einem ganz simplen Programm beginnen und das schrittweise immer mehr Deinem Ziel näherbringen. So hast Du Zeit die Sache zu verinnerlichen und wirst nicht gleich durch ein komplettes Programm erschlagen. Du mußt das aber jetzt tagsüber ausprobieren, weil ich heute keinen Zugriff auf meinen Arduinorechner habe
 

BAXL

Admin
Mitarbeiter
So mein Guter, hier kommt die erste Programmversion. Lade die mal in die Arduino IDE und checke ob alles in Ordnung ist.
Wenn der Compiler nicht meckert, dann schiebe das Programm in den Arduino und gucke was passiert.

Es sollte eine LED an Pin 11 für das Blitzen angeschlossen sein und eine LED an Pin 13 für das langsame Blinken

unsigned long startzeit;
unsigned long vergangene_zeit;
// Variable um die vergangene Zeit zwischen Startzeit und aktueller Zeit berechnen zu können
unsigned long BlinkDauer = 1000; // Hier wird die Blinkdauer für den normalen Blinker festgelegt
int LEDStatusBlinker = HIGH; // Hier wird der aktuelle Wert des Timers ausgelesen

void setup () {
pinMode ( 13, OUTPUT); // Pin für normales Blinken
pinMode ( 11, OUTPUT); // Pin für das Blitzen
digitalWrite(13, LOW); // als Startzustand die LEDs ausschalten
digitalWrite(11, LOW);

startzeit = millis();
}

void loop() {


vergangene_zeit = millis() - startzeit; // Berechnung der vergangenen Zeit seit der letzten Startzeitabfrage


// Vergleich ob die vergangene Zeit gleich oder größer als die Blinkzeit ist
// wenn die Zeit kleiner ist, werden die Befehle übersprungen
// Ist die Zeit gleich oder größer, werden die folgenden Befehle abgearbeitet
If (vergangene_zeit>= BlinkDauer)
{
digitalWrite(13, LEDStatusBlinker); // Hier wird die LED je nach Status ein oder ausgeschaltet

// in folgender if else Abfrage wird der Merker für den LED Status auf den anderen Wert gesetzt
// aus an wird aus, aus aus wird an gemacht

if (LEDStatusBlinker == HIGH){
LEDStatusBlinker = LOW
} else if (LEDStatusBlinker == HIGH){
LEDStatusBlinker = HIGH
}

// Für die neue Wartezeit wird der aktuelle Wert des Timers ausgelesen
startzeit = millis();
}


// In folgenden Zeilen wird die Blitzer-LED mit delay() immer ein und ausgeschaltet
digitalWrite (11, HIGH);
delay(50);
digitalWrite (11, LOW);
delay(50);


}
 
Top Bottom