Go Down

Topic: PWM-Signal auswerten (Read 9 times) previous topic - next topic

jurs


Empfänger arbeitet mit 5V (Ausgang). Ja, ich hab einen Servo angeschlossen. Aber reicht es nicht, wenn nur die Steuerleitung zwischen Empf. und Arduino da ist? Weil Spannung kommt ja vom PC.


Ja und, wo ist das Vergleichslevel, mit dem das Potential der Steuerleitung verglichen werden soll?

Entweder verbindest Du bei getrennter Stromversorgung von Arduino und RC-Empfänger Ground an Ground.

Oder Du versorgst den RC-Empfänger über GND und 5V mit von der Arduino-Stromversorung (falls sonst keine Servos am RC-Empfänger hängen, denn der 5V Pin am Arduino gibt nicht so sehr viel Strom her).

Jedenfalls kann die auszuwertende Steuerleitung nur gegen ein definiertes Ground-Level ausgewertet werden und nicht "freihängend in der Luft" mit der Luft als zweitem Vergleichspotential.


Bluetruck

Danke! Das war das Problem.
Daten hab ich gesammelt, jetzt wollt ich das in den Arduino übertragen. Beim Speichern kommt aber folgender Fehler:

Code: [Select]
sketch_Multiswitch2.ino: In function 'void loop()':
sketch_Multiswitch2:12: error: lvalue required as left operand of assignment
sketch_Multiswitch2:14: error: expected `;' before 'delay'
sketch_Multiswitch2:15: error: lvalue required as left operand of assignment
sketch_Multiswitch2:17: error: expected `;' before 'delay'


Hier nochmal der Sketch:
Quote

void setup ()
{
pinMode (13, OUTPUT);
pinMode (3, INPUT);
digitalWrite (13,LOW);
}

void loop ()
{
int a = pulseIn(3,HIGH,24000);
int LED2v = digitalRead(13);
if (a>1228 && a<1242 && LED2v=LOW)
digitalWrite (2,HIGH)
delay(1000);
if (a>1228 && a<1242 && LED2v=HIGH)
digitalWrite (2,LOW)
delay(1000);
}



Ein Fehler in der if-gleichung
Dann möchte er vor Delay ein ";" - aber das soll ja in die if-formel mit rein. Sonst würd er das ja immer machen (und dass würde ja alles endlos in die Länge ziehen)

Eisebaer

hi,

was in der if-bedingung passieren soll, muß in geschwungene {} klammern, das hat nichts mit ; zu tun.

Code: [Select]

if (a>1228 && a<1242 && LED2v=LOW) {
digitalWrite (2,HIGH);
delay(1000);
}
if (a>1228 && a<1242 && LED2v=HIGH) {
digitalWrite (2,LOW);
delay(1000);
}



gruß stefan

Bluetruck

Ah, dann kann ich auch ";" setzen
Er bringt aber immer noch die andere Fehlermeldung.
"IValue (am anfang ein i)benötigt für übrige/fehlende Rechengröße in Aufgabe" Versuchsweise Übersetzung. Also jedenfalls hat es was mit dem letzten Teil in der if-bedingung zu tun
Code: [Select]
&& LED1v=LOW
Denn wenn ich ihn weglösche, kommt kein Fehler

Eisebaer

hi,

kann man pins, die auf output gesetzt sind, mit digitalread einlesen?

gruß stefan

Go Up