lunedì 11 aprile 2016

Oled Display I2C

Esistono diversi display utilizzabili con Arduino, in questa guida vedremo comandare un piccolo display Oled con protocollo di comunicazione I2C.

domenica 3 aprile 2016

Servo - Blynk esempio ESP8266

In questo esempio controlleremo la posizione d'un Servo motore tramite l'applicazione Blynk.
Guida riassuntiva del progetto: http://goo.gl/0rRHtI

Riporto il codice da caricare sulla nostra ESP8266:
 /* Dave Calaway  
   This example code is in public domain.  
  **************************************************************  
   This example runs directly on ESP8266 NodeMCU 0.9 chip.  
   Please be sure to select the right ESP8266 module  
   in the Tools -> Board menu!  
   Change WiFi ssid, pass, and Blynk auth token to run :)  
  **************************************************************/  
 #define BLYNK_PRINT Serial  // Comment this out to disable prints and save space  
 #include <ESP8266WiFi.h>  
 #include <BlynkSimpleEsp8266.h>  
 #include <Servo.h>  
 Servo myservo;  
 int button;  
 int pos;  
 // You should get Auth Token in the Blynk App.  
 char auth[] = "authtoken";  
 void setup() {  
  Serial.begin(9600);  
  Blynk.begin(auth, "ssid", "pass");  
  myservo.attach(5); // D1 physical pin  
 }  
 BLYNK_WRITE(V0) {  
  button = param.asInt();  
 }  
 BLYNK_WRITE(V1) {  
  pos = param.asInt();  
 }  
 void loop() {  
  Blynk.run();  
  if ( button == 1 ) {  
   myservo.write(pos);  
  }  
  else  
   myservo.write(10);  
 }  
Riporto il mio pannello nell'App:


Da notare dall'immagine si evince:
  • Il bottone è collegato al Virtual0 = V0.
  • Lo slider è collegato al Virtual1 = V1.
  • Lo slider ha un range da 10-150 , non 0-180. Questo per non far sforzare a battuta il Servo.

NB: Ricordo che ogni segnale generato dalla nostra ESP8266 è di 3.3V . E' possibile che il segnale di controllo d'alcuni Servo di grandi dimensioni richiedano un segnale di 5V ( TTL ).