Jeder Sketch in Arduino braucht neben der setup() auch eine loop() Funktion - siehe Fehlermeldung.
loop() ist eine Endlosschleife, in der i.d.R die Programmlogik untergebracht ist.
Code:void setup(){ } void loop(){ }
Jeder Sketch in Arduino braucht neben der setup() auch eine loop() Funktion - siehe Fehlermeldung.
loop() ist eine Endlosschleife, in der i.d.R die Programmlogik untergebracht ist.
Code:void setup(){ } void loop(){ }
Geändert von Bytemuncher (28.02.2012 um 20:41 Uhr)
Wie dumm von mir...
Durch das Verschieben der geschweiften Klammern und das einfügen der void loop Funktion funktionierte es danach...
Ist es eigentlich möglich, dass die Software mir den Wert von y ausgibt?
Wie bei Javascript durch document.write ...
Über den USB Port deines Boards, wird dir eine serielle Schnittstelle zur Verfügung gestellt.
Du musst dann eine Baudrate im Programm definieren, dein Programm auf das Board hoch laden und über einen Serial Monitor , bspw. den von Arduino: Tools -> Serial Monitor, eine Verbindung aufnehmen.
Hier im Beispiel ist die Baudrate 9600. Serial steht für die serielle Schnittstelle, println (= printline) gibt einen Wert, in dem Fall y aus. Das ganze läuft durch loop() in einer Endlosschleife.
Code:int y = 20; void setup(){ Serial.begin(9600); } void loop(){ Serial.println(y); }
Meinst Du damit ein Eingang der ANALOG IN Ports?
Ich meinte eigentlich nur eine virtuelle Durchführung der Berechnung und das ich danach einfach den Wert von y auslesen kann...
wie ist es denn nach dem anschließen von Arduino und PC möglich?
Nein ich meine damit den Anschluss mit dem du ein Arduino Board mit dem PC verbinden kannst.
Die Arduino Boards haben einen USB Anschluss (Typ B).
Bild hier
Ich weiß nicht ob es Emulatoren dafür gibt, i.d.R musst du dein Programm auf das Board hochladen um es auszuführen.
Du lädst das Programm per 'upload' auf dein Board hoch und schaust dir dann die Ausgabe, per USB Verbindung, über den Serial Monitor (siehe oben) an.
Geändert von Bytemuncher (28.02.2012 um 21:17 Uhr)
Hey,
ok verstehe.
Doch wenn ich nun den Code hier uploade:
#include <math.h>
int y,x;
int sensorbreite = 14.9;
int brennweite = 70;
int a = sensorbreite/2/brennweite;
void setup(){
Serial.begin(9600);
}
void loop(){
y = atan(a);
x = 2*y*45/atan(1);
Serial.println(x);
}
Dann den Serialmonitor anschaue... werden, im Gegensatz zum Beispiel (20), nur Nullen ausgegeben...
was habe ich da falsch gemacht?
Du versuchst Kommazahlen in einem int-Datentyp zu speichern. Da int nur ganze Zahlen aufnehmen kann, wird alles hinterm Komma abgeschnitten. Du kannst float als Datentyp benutzen. So sollte es gehen:
Code:#include <math.h> float y,x; float sensorbreite = 14.9; int brennweite = 70; float a = sensorbreite/2/brennweite; void setup(){ Serial.begin(9600); } void loop(){ y = atan(a); x = 2*y*45/atan(1); Serial.println(x); }
Lesezeichen