Wie bringt man dieses Programm für einen Arduinowettbewerb zum laufen?
Hallo liebe Community,
für einen Wettbewerb soll ich ein Programm schreiben.
Ich habe bereits folgendes Programm geschrieben:
#include <IOpins.h> //das muss hier hinzugefügt werden, damit das Programm mit diesem speziellen Arduino funktioniert.
void setup() {
pinMode(IO15, OUTPUT); //rote LED
pinMode(IO16, OUTPUT); //grüne LED
pinMode(IO27, INPUT); // Schalter S2
pinMode(IO4, INPUT); // Schalter S3
pinMode(IO5, INPUT); // Schalter S4
digitalWrite(IO15, HIGH); // aus einem unerfindlichen Grund ist HIGH = aus und LOW = an... fragt nicht, wieso.
digitalWrite(IO16, HIGH);
}
void loop() {
digitalRead(IO27) // Hier soll überprüft werden, ob S2 gedrückt wird..
if(IO27 == LOW) {
digitalWrite(IO15, LOW);//..und dann die LED anmachen.
digitalRead(IO4);
}
if(IO4 == LOW) { // HIer dasselbe für die grüne LED..
digitalWrite(IO15, HIGH);
digitalWrite(IO16, LOW);
digitalRead(IO5);
}
if(IO5 == LOW) { // und hier soll alles ausgeschaltet werden.
digitalWrite(IO15, HIGH);
digitalWrite(IO16, HIGH);
}
aber irgendwo ist ein Fehler. Wenn ich das Programm nämlich auf den Arduino übertrage, und den Schalter S2 drücke, passiert gar nichts.
Wahrscheinlich ist das ein ganz einfaccher Logischer Fehler, aber ich finde ihn einfach nicht.
Es wäre nett, wenn ihr mir helfen könntet.
MfG sebesastian
![Aufgabe - (Computer, Arduino)](https://images.gutefrage.net/media/fragen/bilder/arduino-wettbewerb-brauche-hilfe/0_big.jpg?v=1332976603000)
3 Antworten
Ich glaube, du muss lediglich die }-Klammer bei deinen IF-Abfragen eine Zeile hochsetzen. Im Moment fragst du IO4 nur ab, wenn IO27=LOW ist. Das Gleiche ist bei der Abfrage von IO5, die nur passiert, wenn IO4=LOW ist. Die Frage ist auch, wo dein Schalter dranhängt. Hat er auf der anderen Seite 5V (=HIGH) oder Masse (=LOW)?
Hmm, hast du mal probiert, mit einem Programm mal einfach eine LED blinken zu lassen. So was wie:
#include <IOpins.h>
void setup()
{
pinMode(IO15, OUTPUT); //rote LED
}
void loop()
{
digitalWrite(IO15,HIGH);
wait(1000);
digitalWrite(IO15,LOW);
wait(1000)
}
Blinkt da die rote LED?
Ja. Habs jetzt aber auch gelöst :) Man musste den internen Pull-up- Wiederstand für die Schalter aktivieren.
und wie hast du das gemacht? den internen Pull-up- Wiederstand für die Schalter aktivieren?
einfach für jeden SChalter den Befehl digitalWrite([Schalter], HIGH); hinzufügen.
das geht iwie immer noch nicht -.- also BSP: pinMode(IO27, INPUT); digitalWrite(IO27, HIGH);// Schalter S2
oh... sorry, habs nicht gesehen, dass du was gepostet hast. im setup natürlich, sonst geht das nciht
Wie hast du denn programmieren gelernt? Möchte eben auch lernen zu programmieren! Aber bin erst 12 und da ist es eben schwierig etwas zu finden!
Lg iRobi8
P.S: Welche sprache ist das(arduino)?
Arduino funktioniert über C++, kannst du dir in versch. Example- Sketches beibringen.
Das mit den Klammern hat nich funktioniert.. da leuchtet immernoch nichts. An der einen Seite vom Schalter ist der Pin und an der Anderen GND, also Masse.
Danke für deine Hilfe schonmal.