Hinter dem heutigen Türchen befindet sich ein weiterer 1 kOhm Widerstand. Allerdings muss heute nichts am Hardwareaufbau vom gestrigen Tag verändert werden. Es wird lediglich eine Kleinigkeit an der Oberfläche variiert.

Der Aufbau von gestern
Der gestrige Aufbau

Auch das Programm müssen Sie nicht  erneut hochladen, wenn Sie einfach die Oberfläche von gestern manuell anpassen. Falls Sie die Oberfläche sicherheitshalber dennoch in die App laden möchten, finden Sie hier wie immer den QR-Code. Allerdings müssen Sie dann auch den Token neu in Ihr Programm eintragen.

blynk_tag99
http://tinyurl.com/zmu9dnk

Um die Änderungen manuell vorzunehmen, müssen Sie zunächst den Button, der vorher für die LED an D9 zuständig war, löschen. Dazu klicken Sie kurz auf den Button, während die Oberfläche nicht gestartet ist, und klicken unten den Punkt delete an. Dort wird auch die Energie angezeigt, die Sie „recyceln“. Nun müssen Sie statt dem Button einen Slider einfügen. Klicken Sie dazu oben rechts auf das Plus und wählen Sie Slider_L aus. Der Slider erscheint auf der Oberfläche. Mit kurzem Klick auf das Element gelangen Sie in dessen Einstellungen. Dort stellen Sie Output auf Digital D9 ein. Beachten Sie, dass hinter D9 in rot und klein PWM steht, ein kleiner Hinweis um was es heute geht. Nach diesen Änderungen können Sie die Oberfläche mit Klick auf den Play-Button oben rechts starten.

Was vorher nur mit der virtuellen LED möglich war ist nun auch mit realen Objekten möglich. Durch Verändern der Slider Position ändern Sie die Helligkeit der LED an D9. Sie könnten nun also z.B. eine dimmbare Wohnzimmerlampe bauen, die sich per App steuern lässt. Das Stichwort zu diesem Thema heißt PWM (Puls Weite Modulation). Denn anders als beispielsweise eine Glühlampe kann man bei einer LED nicht einfach mit weniger Spannung die Helligkeit verändern. Das Verfahren ist hier durchaus komplizierter und funktioniert über schnelles An- und Ausschalten des Ports. Die An- und Auszeiten variieren so, dass es den Anschein hat, dass die LED heller oder dunkler wird. Je länger die An-Zeit im Vergleich zu Auszeit, desto heller die LED. Dass das Flackern der LED nicht oder kaum zu sehen ist liegt an der hohen Geschwindigkeit, mit der der Port geschaltet wird. Mit diesem Verfahren lassen sich übrigens auch Motoren steuern oder Audio Signale generieren.

Das Programm: A16_P09_Blynk5_PWM.ino
/*
Blynk 5: PWM
No Change to previous programm
Change ssid, password and token
*/

char ssid[] = "YourSSID";
char password[] = "YourPassword";
char token[] = "YourToken";

#define BLYNK_DEBUG
#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <ESP8266_SoftSer.h>
#include <BlynkSimpleShieldEsp8266_SoftSer.h>

// Set ESP8266 Serial object
#include <SoftwareSerial.h>
SoftwareSerial EspSerial(11, 12); // RX, TX

#define BUTTON 7

ESP8266 wifi(EspSerial);

 WidgetLED led1(V0);
 WidgetLED led2(V1);

void setup()
{
  // Set console baud rate
  Serial.begin(19200);
  EspSerial.begin(19200);

  Blynk.begin(token, wifi, ssid, password);

  pinMode(BUTTON, INPUT_PULLUP);
}

void loop()
{
  Blynk.run();
  checkPin();
  checkPoti(); 
}

boolean currState = false ;

void checkPin()
{
  if (!digitalRead(BUTTON))
  {
    currState = !currState;

    //write current state to virtual LED
    if (currState){
       led1.on();
    }
    else{
       led1.off();
    }

    //wait till button is released
    while (!digitalRead(BUTTON)){  
    }
   
  }
}
int lastValue = 0;

void checkPoti()
{
  //read A0 and convert it to values 0-255
  int currValue = map(analogRead(A0), 0, 1023, 0, 255);

  //if values have changed write to virtual led2
  if (!(currValue == lastValue)){
      lastValue = currValue;
      Blynk.virtualWrite(V1, currValue);
  }
}

(Die frühere Einbettung über Arduino Create ist nicht mehr verfügbar; der Code stammt aus dem Download aller Programme.)