Blynk Virtuellen Pin auslesen und Variable erstellen

Hallo liebes Forum,

ich habe ein kleines Problem bei meiner LED Beleuchtung im Zimmer. Ich steuere das ganze über das Handy mit der Blynk app. Das funktioniert auch alles wunderbar aber ich habe mir überlegt ich könnte auch Programme abspielen lassen z.B.: abwechselndes blinken der Farben. Ich habe in Blynk einen Button angelegt mit einem virtuellen Pin. Nun möchte ich das ganze im Programm auslesen und einen Loop abspielen lassen wenn der Pin V1 HIGH (1) ist. Ich weiß ja auch wie man das auslesen kann:

BLYNK_WRITE(1) { int va1 = param.asInt(); Serial.println(va1);

Im serielen Monitor wird das auch angezeicht (0 oder 1), das problem liegt nur daran das wenn ich dann im void loop die Variable va1 hineinschreibe heißt es jedes mal diese sei nicht vorhanden. Gieb es da vieleicht was was ich noch nicht bedacht habe oder geht das garnicht?

Weil die Variable nur innerhalb der von Dir nur unvollständig gezeigten {} vorhanden ist.

Gruß Tommy

Hi

Ich sehe kein loop().

Die Funktion BLYNK_WRITE(1) hat eine lokale Variable va1 - Die ist NUR IN DIESEM BLOCK vorhanden. Zum Ende der Funktion wird diese Variable schlicht vergessen. Wenn Du diese Variable 'draußen' brauchst, musst Du Diese 'draußen' deklarieren, also global machen. DANN darf Diese aber nicht auch IN der Funktion deklariert werden, da lokale Variable globale Variablen überdecken - Du kannst gleiche Namen verwenden, kommst dann aber nicht an die Globale dran - da Du eine Lokale mit gleichem Namen nutzt, wird Das aber wohl dann klar gewesen sein.

Wenn Das eine ISR ist, muß die Variable zusätzlich volatile deklariert werden (aber nur, wenn die Variable in UND außerhalb der ISR benutzt wird - hier ist das UND wichtig).

MfG

Danke hat mir sehr geholfen Es funktioniert jetzt hab einfach das "int" weg gelassen.