Utente:Carbowski/Arduino: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
voltometro da 0 a 30V
Etichetta: Editor wikitesto 2017
Riga 425:
 
===Descrizione del progetto===
Questo progetto mira a creare un voltometro in grado di leggere tensioni superiori a 5V utilizzando un semplice sistema di resistenze. Infatti in questo caso riusciamo ad avere un valore di lettura di tensione in DC da 0 a 30V senza creare ovviamente nessun tipo di danno al microcontrollore. Il tutto verrà trasmesso su un display LCD in modo da visualizzare la lettura della tensione in tempo reale. nel caso in cui non sia possibile utilizzare il display possiamo comunque leggere i valori nella porta seriale dwell'interfaccia di arduino collegandolo ad un computer.
 
===schema di montaggio===
[[File:Arduino-voltmetro.png|bordo|centro|miniatura|616x616px|voltometro con arduino]]
 
===Codice===
<syntaxhighlight lang="arduino" line="1">
 
/*
#include <LiquidCrystal.h> //includiamo la libreria per il controllo del display
VOLTOMETRO DC CON ARDUINO DA 0 a 30 v
AUTORE FANCELLO SALVATORE
Per maggiori info: http://www.progettiarduino.com
*/
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0; // inserireinseriamo il valore esatto della resistenza R1 (100K)
float R2 = 10000.0; // inserireinseriamo il valore esatto della resistenza R2 (10K)
int value = 0;
 
void setup(){
pinMode(analogInput, INPUT); //input del voltaggio da leggere
lcd.begin(16, 2); //indica colonna e righe del nostro LCD
lcd.print("VOLTMETRO DC"); //scrivi "VOLTOMETRO DC" sulla prima
Serial.begin(9600); //inizializza la porta seriale
}
void loop(){
Line 454 ⟶ 452:
vout = (value * 5.0) / 1024.0;
// inserire al posto di 5.0V l`uscita in volt tra i Pin 5V e GND del vostro Arduino
vin = vout / (R2/(R1+R2)); //legge il valore di tensione del partitore
if (vin<0.09) {
vin=0.0; //nel caso di una tensione troppo basso il voltometro segna 0V
vin=0.0;
}
lcd.setCursor(0, 1);
lcd.print("INPUT V= "); //scrive nella seconda riga "INPUT V="
lcd.print(vin); //scrive il valore letto
delay(500);
}
</syntaxhighlight>
 
===Conclusioni===
Concludendo abbiamo realizzato uno strumento utile per misurare in modo preciso (utilizzando resistenze con una tolleranza molto bassa, consiglio quelle con valore 1% o inferiori) delle tensioni corrente continua da 0 a 30V, facilmente leggibili dal display LCD o in caso di mancaza di esso dalla porta seriale dall'IDE di arduino.