Guten Abend,
ich habe mich heute an mein erstes Projekt mit Arduino gesetzt und versucht die Ampelschaltung nach dem video nachzubauen: https://www.youtube.com/watch?v=jlq2f7Qbeao. Jetzt habe ich das so nachgebaut und den Code kopiert:
int schalter = 0; //Anlegen der Variable Schalter
void setup() {
// put your setup code here, to run once:
pinMode(10,OUTPUT); //Digitalpin 10 wird als Output festgelegt
pinMode(11,OUTPUT); //Digitalpin 11 wird als Ouptut festgelegt
pinMode(12,OUTPUT); //Digitalpin 12 wird als Output festgelegt
pinMode(3,INPUT); //Digitalpin wird als Input festgelegt
}
void loop() {
// put your main code here, to run repeatedly:
schalter=digitalRead(3); //Der Wert, der an Pin 3 eingelesen wird, wird in schalter geschrieben
if(schalter==LOW)( //Abfrge der Bedingung, ob an Pin ein LOW Signal vorliegt => Taster nicht gedrückt
//Ampel rot
digitalWrite(12,HIGH); //Pin 12 gibt HIGH aus => rote LED leuchtet
digitalWrite(11,LOW); //Pin 11 gibt LOW aus => gelbe LED leuchtet
digitalWrite(10,LOW); //Pin10 gibt LOW aus => rote LED leichtet
delay(250); //Verzögerung von 250ms
)
else( //=> Taster ist gedrückt, es liegt HIGH ans Pin 3 vor
//Ampel rot
digitalWrite(12,HIGH); //Pin 12 gibt HIGH aus => rote LED leuchtet
digitalWrite(11,LOW); //Pin 11 gibt LOW aus => gelbe LED leuchtet
digitalWrite(10,LOW); //Pin10 gibt LOW aus => rote LED leichtet
delay(250); //Verzögerung von 250ms
//Ampel gelb
digitalWrite(12,LOW);
digitalWrite(11,HIGH);
digitalWrite(10,LOW);
delay(4000); //Verzögerung von 4000ms
//Ampel grün
digitalWrite(12,LOW);
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
delay(10000); //Verzögerung von 10000ms
)
}
Nun bekomme ich aber die ganzen Zeit diesen Fehlercode:
/private/var/folders/80/43nqp1bx1ws8k7k75t14rqlr0000gn/T/.arduinoIDE-unsaved202519-2859-1a4sbs2.qhao/sketch_feb9c/sketch_feb9c.ino: In function 'void loop()':
/private/var/folders/80/43nqp1bx1ws8k7k75t14rqlr0000gn/T/.arduinoIDE-unsaved202519-2859-1a4sbs2.qhao/sketch_feb9c/sketch_feb9c.ino:21:22: error: expected ')' before ';' token
digitalWrite(12,HIGH); //Pin 12 gibt HIGH aus => rote LED leuchtet
^
/private/var/folders/80/43nqp1bx1ws8k7k75t14rqlr0000gn/T/.arduinoIDE-unsaved202519-2859-1a4sbs2.qhao/sketch_feb9c/sketch_feb9c.ino:25:1: error: expected primary-expression before ')' token
)
^
/private/var/folders/80/43nqp1bx1ws8k7k75t14rqlr0000gn/T/.arduinoIDE-unsaved202519-2859-1a4sbs2.qhao/sketch_feb9c/sketch_feb9c.ino:49:1: error: expected primary-expression before ')' token
)
^
exit status 1
Compilation error: expected ')' before ';' token.
Bin ziemlich überfordert und finde den Fehler nicht. Ich würde mich über jede Hilfe freuen.
Mit freundlichen Grüßen,
Julian
int schalter = 0; //Anlegen der Variable Schalter
void setup() {
// put your setup code here, to run once:
pinMode(10, OUTPUT); //Digitalpin 10 wird als Output festgelegt
pinMode(11, OUTPUT); //Digitalpin 11 wird als Ouptut festgelegt
pinMode(12, OUTPUT); //Digitalpin 12 wird als Output festgelegt
pinMode(3, INPUT); //Digitalpin wird als Input festgelegt
}
void loop() {
schalter = digitalRead(3); //Der Wert, der an Pin 3 eingelesen wird, wird in schalter geschrieben
if (schalter == LOW) { //Abfrge der Bedingung, ob an Pin ein LOW Signal vorliegt => Taster nicht gedrückt
//Ampel rot
digitalWrite(12, HIGH); //Pin 12 gibt HIGH aus => rote LED leuchtet
digitalWrite(11, LOW); //Pin 11 gibt LOW aus => gelbe LED leuchtet
digitalWrite(10, LOW); //Pin10 gibt LOW aus => rote LED leichtet
delay(250); //Verzögerung von 250ms
} else { //=> Taster ist gedrückt, es liegt HIGH ans Pin 3 vor
//Ampel rot
digitalWrite(12, HIGH); //Pin 12 gibt HIGH aus => rote LED leuchtet
digitalWrite(11, LOW); //Pin 11 gibt LOW aus => gelbe LED leuchtet
digitalWrite(10, LOW); //Pin10 gibt LOW aus => rote LED leichtet
delay(250); //Verzögerung von 250ms
//Ampel gelb
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
digitalWrite(10, LOW);
delay(4000); //Verzögerung von 4000ms
//Ampel grün
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, HIGH);
delay(10000); //Verzögerung von 10000ms
}
}
Wie schon geschrieben, Du hast die "falsche" Art von Klammern für die Anweisungsblöcke der IF-ELSE Anweisung verwendet.
wenn du dir angewöhnst Pins gemäß ihrer Verwendung zu benennen wird der Code lesbarer.
Außerdem ersparst du dir Tipparbeit für die (teilweise falschen) Kommentare. Solltest du mal einen anderen Pin benötigen, machst du die Änderung an einer Stelle im Code.
int schalter = 0; // Variable die den Status des tasterPin aufnimmmt
// Pindefinitionen die während dem Programmablauf konstant bleiben
const uint8_t rotPin = 10; // Pins für die Ampel festlegen
const uint8_t gelbPin = 11;
const uint8_t gruenPin = 12;
const uint8_t tasterPin = 3; // Pin an dem der Taster angeschlossen ist
void setup() {
//Pins als Ausgänge definieren
pinMode(rotPin, OUTPUT);
pinMode(gelbPin, OUTPUT);
pinMode(gruenPin, OUTPUT);
// optional: Pin als Eingang definieren
pinMode(tasterPin, INPUT);
}
void loop() {
schalter = digitalRead(tasterPin); //Der Wert, der am Pin eingelesen wird, wird in Variable übernehmen
if (schalter == LOW) { //Abfrge der Bedingung, ob an Pin ein LOW Signal vorliegt => Taster nicht gedrückt
//Ampel rot
digitalWrite(rotPin, HIGH);
digitalWrite(gelbPin, LOW);
digitalWrite(gruenPin, LOW);
delay(250); //Verzögerung in millisekuden
} else { //=> Taster ist gedrückt, es liegt HIGH am TasterPin vor
//Ampel rot
digitalWrite(rotPin, HIGH);
digitalWrite(gelbPin, LOW);
digitalWrite(gruenPin, LOW);
delay(250);
//Ampel gelb
digitalWrite(rotPin, LOW);
digitalWrite(gelbPin, HIGH);
digitalWrite(gruenPin, LOW);
delay(4000);
//Ampel grün
digitalWrite(rotPin, LOW);
digitalWrite(gelbPin, LOW);
digitalWrite(gruenPin, HIGH);
delay(10000);
}
}
P.S.: meiner Meinung nach fehlt die Phase mit ROT-GELB
Letzthin bekam ich einen Brief "einer Feststellung einer Übertretung der Straßenverkehrsordnung wegen Nichtbeachtung der dort angebrachten Verkehrsampel ... ohne anzuhalten die Fahrt fortsetzte obwohl die dort angebrachte Ampel .. rotes Licht zeigte", mit einer Zahlungsaufforderung von 135,78€, 185,88€ bzw 351,38€ ( Summe variert je nach Zahlungsfrist; man zahlt weniger wenn man innerhalb 5 bzw 60 Tage oder danach zahlt.
Dazu noch Abzug von 6 Punkten (In Italien werden Die Führerscheinpunkte von 20 abgezogen) dazu bei Wiederholung der Übertretung innerhalb 2 Jahren ein Führerscheinentzug von 1 bis 3 Monaten.
Der Brief kam einige Monate nach der Übertretung, weil die besagte Ampel Videoüberwacht ist, und die Aufzeichnung erst nach 25 Tagen ausgewertet wurde.
In Italien ist es auch egal ob die Ordnungshüter den Fahrer feststellen können oder nicht oder Dich nicht sofort aufgehalten haben. Wenn der Fahrzeugshalter nicht selbst gefahren ist, muß er den Fahrer benennen und dieser bekommt den Punkteabzug. Geldstrafe bleibt.
Danke für die Hilfe, ich habe das Problem gelöst bekommen.
Habe jetzt die Anleitung von funduino entdeckt mit der ich ein wenig experimentiere, habt ihr vielleicht noch andere Seiten, Bücher, die ihr empfehlen würdet?
Diese Ordnung hat in DE-Land als ersten und wichtigsten §1:
Die Teilnahme am Straßenverkehr erfordert ständige Vorsicht und gegenseitige Rücksicht.
Wer am Verkehr teilnimmt hat sich so zu verhalten, dass kein Anderer geschädigt, gefährdet oder mehr, als nach den Umständen unvermeidbar, behindert oder belästigt wird.
Meine Hoffnung ist, dass das in Italien ähnlich aussieht. Obwohl meine Erfahrung sagt, dass die "Auslegung" sich zwischen DE und IT "etwas" unterscheidet, bzw. gelebt wird. In IT etwas lockerer, mehr Abenteuer.
Das ist ein uraltes Vorurteil. ( Auch Franzosen -- hier in Südwestdeutschland auf der A5 -- erkennt man am Nummernschild, nicht an der Fahrweise )
Generell sind die Unterschiede zwischen Individuen erheblich größer als zwischen Angehörigen verschiedener Nationen. Mein herzliches Beileid an @uwefed, übrigens.
Wißt Ihr was das lustigste am Video ist:
bei 6:28 sagt der Sprecher "und wir waren erst in Südtirol".
Er fährt viel zwischen Bozen und Kaltern, auf der Schnellstraße nach Meran und am Ende ins Nonberg und Val Sugana.
Ich bin gewohnt wie Italiener fahren. Wenn da ein Bundesdeutscher kommt weiß ich nicht wie der fährt.
Italiener sind generell tolleranter und wenig rechthaberisch. Ich habe Verkehrsteilnehmer auf deutschen Autobahnen als für mich ungewohnt agressiv erlebt.
Andererseits wenn Ordnungshüter Dich erwischen, dann sind die Strafen sehr drakonischer als in Deutschland. In Italien müssen sie dich nicht aufhalten. Du bekommt einen Brief.
zB Pisa Einfahrt in Verkehrberuhigte Zohne . Hab das Schild nicht gesehen; Autos standen am Strasenrand wie überall. Bekam Brief mit Foto meines Numernschildes und Zahlungsaufforderung. Auf Streedview nachgeschaut. Da steht wirklich das Schild.
Die Motorradfahrer im Video haben auch für mich eine nicht nachvolziebare Verhaltensweise.
Wieso?
Ich wohne in Italien und die deutsche Sprache ist hier (neben anderen) Amtssprache. Da gibt es sehr wohl rote Ampeln und nicht nur semafori rossi.
Die Sicherheit und der Schutz der Gesundheit des Menschen sowie der Umweltschutz fallen im Bereich Straßenverkehr unter die primären sozialen und wirtschaftlichen Ziele des Staates.
Die Teilnahme von Fahrzeugen, Fußgängern und Tieren am Straßenverkehr wird, unter Beachtung der einschlägigen internationalen und Gemeinschaftsvorschriften, von den Bestimmungen dieser Straßenverkehrsordnung und von den entsprechenden Durchführungsmaßnahmen geregelt. Die Bestimmungen und Durchführungsmaßnahmen orientieren sich an den Grundsätzen der Verkehrssicherheit und der nachhaltigen
Mobilität und haben zum Ziel, die durch den Fahrzeugverkehr verursachten wirtschaftlichen, sozialen und Umweltkosten zu reduzieren, die Lebensqualität der Bürger unter anderem durch eine rationelle Flächennutzung zu steigern, die Verkehrsflüssigkeit zu verbessern und die Nutzung von Fahrrädern zu fördern.
Aber das typische Problem für mich, daß nur nach A und CH verschickt wird oder die Versandkosten nach A und CH gleich denen in D und nach I sauteuer.
Grüße Uwe