Par questo progetto utilizzeremo il sensore ACS714 prodotto dalla Allegro accetta una corrente di entrée bidirezionale con un'ampiezza al massimo pari a 5 a e fornisce en sortie una tensione analogica proporzionale (185mV/A) centrata un 2.5V con ONU errore tipico pari un ± 1,5 %. Opéra de sensore il dans un rang di tensioni e de fra 4,5 5,5 v ed è stato progettato par essere utilizzato in sistemi che operano un 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 in qualunque punto lungo il percorso della corrente e soprattutto permette di utilizzare questo sensore dans applicazioni che richiedono isolamento elettrico. La larghezza di banda viene fissata attraverso il condensatore C9 connesso al pin etichettato con la dicitura « Filtre »
Il prossimamente lien par interfacciare i dati da arduino un TouchOsc
--------------------------------
#include //inclusione della libreria LCD
definizione dei pin int ACS714 = A0 ; int partitore = A1 ;
definizione valori flotteur de e entier par calcolo valori corrente e tensione int sensorValue = 0 ; int outputValue = 0 ; flotteur vout = 0.0 ; flotteur ampères = 0.0 ; flotteur vref = 5.0 ; valV int = 0 ; flotteur volts = 0.0 ; float R1 = 46220.0 ; // !! Valore della resistenza R1!! float R2 = 9781.0 ; // !! Valore della resistenza R2!! flotteur corr = 1,02 ; Valore di correzione lettura tensione
definizione dei pin LCD int RS = 5 ; int fr = 4 ; int D7 = 0 ; int D6 = 1 ; int D5 = 2 ; int D4 = 3 ;
libreria inizializzazione LCD innovente lcd(RS,EN,D4,D5,D6,D7) ;
void setup() {}
analogRead(ACS714) ; analogica lettura prima della corrente analogRead(partitore) ; analogica lettura prima della tensione lcd.begin(16,2) ; retard d’inizializzazione lcd 16 x 2 (10) ;
Test LCD
LCD.Print ("Test LCD OK") ; messaggio di test delay(2000) ; Pausa di 2 secondi
LCD.Clear() ; cancellazione affichage delay(10) ; Pausa par operazione effettuazione}
void loop() {}
ampères = 0.0742 * analogRead (ACS714)-37.87 ; Si SAP (SAP < 0,15) = 0,0 ;
valV = analogRead(partitore) ; Lettura del valore fornito dal partitore vout = (valV * Vréf) / 1024.0 ; Conversione del valore en volts di = (vout / (R2/(R1+R2))) * corr ; Calcolo valore letto
LCD.Clear() ; pulisci memoria lcd lcd.setCursor(0,0) ; SETTA il cursore sulla prima linea affichage lcd.print ("a:") ; Scrivi la parola ampères : lcd.print(amps,1) ; riporta il valore calcolato degli ampère
lcd.setCursor(0,1) ; SETTA il cursore sulla prima linea affichage lcd.print (« VOLT: ") ; écrit la parola VOLTS : lcd.print(volts,1) ; riporta il valore calcolato dei volts retardent (500) ; Pausa lettura}