Amperometro con arduino
Per questo progetto utilizzeremo il sensore ACS714 prodotto dalla Allegro accetta una corrente di ingång bidirezionale con un'ampiezza al massimo pari en 5A e fornisce i utdata una tensione analogica proporzionale (185mV/A) centrata con en 2.5V un fel tipico pari en ±1.5%. Il sensore opera i FN: s sträcker di tensioni fra 4.5 e 5.5V ed è stato progettato per essere utilizzato i sistemi che operano en 5V. Il sensore si basa sull'effetto Hall e permette all'IC di isolare elettricamente il percorso della corrente dall'elettronica del sensore (fino a 2.1 kV RMS): ciò permette di inserire il sensore i qualunque punto lungo il percorso della corrente e soprattutto permette di utilizzare questo sensore i applicazioni che richiedono isolamento elettrico. La larghezza di banda viene fissata attraverso il condensatore C9 connesso al pin etichettato con la dicitura "Filter"
Prossimamente il länk per interfacciare dati da arduino en TouchOsc
--------------------------------
#include //inclusione della libreria LCD
definition dei pin int ACS714 = A0; int partitore = A1;
definition valori heltal e float per calcolo valori corrente e tensione int sensorValue = 0; int outputValue = 0; flyta vout = 0,0; flyta ampere = 0,0; flyta vref = 5.0; int med = 0; flyta volt = 0,0; flyta R1 = 46220.0; // !! Valore della resistenza R1! flyta R2 = 9781.0; // !! Valore della resistenza R2! flyta corr = 1,02; Valore di correzione lettura tensione
definition dei pin LCD int RS = 5; int sv = 4; int D7 = 0; int D6 = 1; int D5 = 2; int D4 = 3;
inizializzazione libreria LCD-LiquidCrystal lcd(RS,EN,D4,D5,D6,D7);
void setup() {
analogRead(ACS714); Prima lettura analogica della corrente analogRead(partitore); Prima lettura analogica della tensione lcd.begin(16,2); inizializzazione LCD-16 x 2 fördröjning (10).
Test LCD
LCD.Print ("Test LCD OK"). messaggio di test delay(2000); Pausa di 2 secondi
LCD.Clear(); cancellazione display delay(10); Pausa per effettuazione operazione}
void loop() {
ampere = 0.0742 * analogRead (ACS714)-37.87; om (ampere < 0.15) ampere = 0,0;
Med = analogRead(partitore); Lettura del valore fornito dal partitore vout = (med * vref) / 1024.0; Conversione del valore i di volt = (vout / (R2/(R1+R2))) * corr; Calcolo valore letto
LCD.Clear(); pulisci memoria LCD-lcd.setCursor(0,0); setta il cursore sulla prima linea display lcd.print ("AMPERE:"); Scrivi la parola AMPERE: lcd.print(amps,1); riporta il valore calcolato degli ampere
lcd.setCursor(0,1); setta il cursore sulla prima linea display lcd.print ("VOLT:"); skriver la parola volt: lcd.print(volts,1); riporta il valore calcolato dei volt fördröja (500); Pausa lettura}