Lo scopo di questo tutorial mostra come far far comunicare Arduino e un cellulare, tramite un modulo bluetooth.
Materiale
- Arduino Uno
- Modulo bluetooth HC-05
by ANTONIO PAGANO
Lo scopo di questo tutorial mostra come far far comunicare Arduino e un cellulare, tramite un modulo bluetooth.
Materiale
DESCRIZIONE
Misurare temperatura e umidità tramite il sensore DHT11 e arduino.
Osservando il datasheet del DHT11 si nota che va collegata anche una resistenza (detta di pull-up) sul pin 2, e anche che vengono usati solo 3 piedini su 4 disponibili.
qui troverete la libreria che permette di usarlo
MATERIALE USATO
Sensore umidità e temperatura DHT11
Resistenza da 5k
Arduino
SCHEMA
SKETCH #include dht11 DHT11; #define DHT11PIN 2 void setup() { Serial.begin(9600); } void loop() { int chk = DHT11.read(DHT11PIN); Serial.print("stato sensore: "); switch (chk) { case 0: Serial.println("OK"); break; case -1: Serial.println("Checksum error"); break; case -2: Serial.println("Time out error"); break; default: Serial.println("Unknown error"); break; } Serial.print("Umidita (%): "); Serial.println((float)DHT11.humidity, 2); Serial.print("Temperatura (Celsius): "); Serial.println((float)DHT11.temperature, 2); delay(5000); }
L’esperimento consiste nel regolare, tramite potenziometro, l’intensità della luce emessa da un LED.
Materiale richiesto:
1 resistenza 1KOhm
1 potenziometro
1 led
e ovviamente un arduino.
Piccolo ripasso dei componenti:
Potenziometro, fondamentalmente è un dispositivo che permette di variare la resistenza, e quindi la quantita di corrente che attraversa il circuito, tramire una semplice manopola. O meglio, non regola la quantita di corrente ma bensi la tensione. Infatti le resistenze NON bloccano la corrente! come per tutti i bipoli elettrici, si ha che I(in) = I(out), sempre!
Quello che fanno è assorbire della potenza e provocare una caduta di tensione ai capi. Ricordiamo che la prima legge di Ohm è V=R*I, essendo I costante variando R variamo la V.
Led, è un compontente che sviluppa luce al passaggio di corrente. O meglio, il led si comporta come un conduttore perfetto quando si applica una tensione in un certo modo (polarizzazione diretta), e diventa un isolante quando si inverte la tensione (polarizzazione inversa) . Tutto questo in teoria, nella realtà, osservando la curva corrente-tensione di un diodo, si nota che la conduzione in polarizzazione diretta
è possibile solo superando una tensione di soglia Vg. Il polo positivo è detto anodo, quello negativo catodo. La polarizzazione diretta è quando si applica il positivo all anodo e il negativo al catodo
Riassumento e semplificando, possiamo considerare questo dispositivo dal suo aspetto funzionale (ideale) come un interruttore, il quale risulta essere chiuso quando è polarizzato direttamente (quindi percorso da una determinata intensità di corrente) ed aperto quando è polarizzato inversamente (non consente il passaggio di intensità di corrente, nel caso ideale).
Schema elettronico
Per quanto riguarda la parte software abbiamo
int valore = 0; int pinPonteziometro = A0; int pinLed = 9; void setup() { pinMode(pinPonteziometro, INPUT); // pin potenziometro pinMode(pinLed, OUTPUT); // pin led Serial.begin(9600); // inizializza il collegamento seriale } void loop() { valore = analogRead(pinPonteziometro); // legge il valore analogico del //potenziometro Serial.print("Valore letto dal potenziometro:"); Serial.println(valore); // Stampa il valore letto if (valore > 255) digitalWrite(pinLed, HIGH); //accende il led if (valore < 0) digitalWrite(pinLed, LOW); //spegne il led if (valore > 0 && valore < 255) digitalWrite(pinLed, valore); // intensita luminosa del led uguale al valore letto dal potenziometro delay(1000); // aspetta 1000 millisecondi, ossia un secondo }
da notare che la luminosità del led può assumere valori che vanno da 0 a 255, mentre i valori del potenziometro vanno fino a 1024, se non sbaglio, ecco spiegato il perchè delle if.
Uno sketch è composto da due funzioni: setup() che serve a inizializzare le varie componenti e loop() che viene eseguita in continuazione su arduino. Altre funzioni native di arduino sono: