CamperOnLine
  • Camper
    • Camper usati
    • Camper nuovi
    • Produttori
    • Listino
    • Cataloghi
    • Concessionari e rete vendita
    • Noleggio
    • Van
    • Caravan
    • Fiere
    • Rimessaggi
    • Le prove di CamperOnLine
    • Provati da voi
    • Primo acquisto
    • Area professionisti
  • Accessori
    • Accessori e Prodotti
    • Camping Sport Magenta accessori
    • Produttori
    • Antenne TV
    • Ammortizzatori
    • GPS
    • Pneumatici
    • Rimorchi
    • Provati da Voi
    • Fai da te
  • Viaggi
    • Diari di viaggi in camper
    • Eventi
    • Foto
    • Check list
    • Traghetti
    • Trasporti
  • Sosta
    • Cerca Strutture
    • Sosta
    • Aree sosta camper
    • Campeggi
    • Agriturismi con sosta camper
    • App Camperonline App
    • 10 Consigli utili per la sosta
    • Area strutture
  • Forum
    • Tutti i Forum
    • Sosta
    • Gruppi
    • Compagni
    • Italia
    • Estero
    • Marchi
    • Meccanica
    • Cellula
    • Accessori
    • Eventi
    • Leggi
    • Comportamenti
    • Disabili
    • In camper per
    • Altro Camper
    • Altro
    • Extra
    • FAQ
    • Regolamento
    • Attivi
    • Preferiti
    • Cerca
  • Community
    • COL
    • CamperOnFest
    • Convenzioni Convenzioni
    • Amici
    • Furti
    • Informativa Privacy
    • Lavoro
  • COL
    • News
    • Newsletter
    • Pubblicità
    • Contatto
    • Ora
    • RSS RSS
    • Video
    • Facebook
    • Instagram
  • Magazine
  • Italiano
    • Bienvenue
    • Welcome
    • Willkommen
  • Accedi
CamperOnLine
Camping Sport Magenta
  1. Forum
  2. Tecnica
  3. Accessori
Galleria

Arduino, voltmetro/amp/watt, livelli

Nuovo
Cerca
Berger Camping
SostaGruppiCompagniItaliaEsteroMarchiMeccanicaCellulaAccessoriEventiLeggiComportamentiDisabiliIn camper perAltro CamperAltroExtra
5 20 195
18
mpsergio
mpsergio
06/05/2007 555
Inserito il 26/03/2013 alle: 16:58:22
Ciao Hai provato ad implementare la funzione map? /* Map an analog value to 8 bits (0 to 255) */ void setup() {} void loop() { int val = analogRead(0); val = map(val, 0, 1023, 0, 255); analogWrite(9, val); }
18
camperos
camperos
29/12/2006 4709
Inserito il 27/03/2013 alle: 23:47:08
ciao "map" nello sketch non serve, comunque sono a buon punto, sketch finito, circuito stampato fatto, devo saldare i quatto componenti, penso che per domenica sia pronto per la prova finale. come calcolo partitore ho optato per 20V ingresso, 5V ad arduino, a 15 V entrano circa 3V, ho inserito uno zener da 5,1V a protezione del pin, non si sa mai [:D] quando ho finito posto o linko il tutto [:)]
17
Jorge
Jorge
09/04/2008 526
Inserito il 28/03/2013 alle: 22:31:19
quote:Risposta al messaggio di camperos inserito in data 27/03/2013  23:47:08 (Visualizza messaggio in nuova finestra)>
> con lo zener da 5,1V fai le dovute prove ma prova anche con uno da 5,6 taglia meno tensione. forza Camperos...aspetto te, poi provo pure io.
18
mpsergio
mpsergio
06/05/2007 555
Inserito il 29/03/2013 alle: 13:11:08
Perfetto aspettiamo l'ultima release di camperos
Cornovaglia in Camper
Cornovaglia in Camper
Reno e Mosella in camper, estate 2025
Reno e Mosella in camper, estate 2025
Spagna del Nord e Portogallo
Spagna del Nord e Portogallo
Marocco
Marocco
Valle d'Aosta e Francia  in camper - Ago
Valle d'Aosta e Francia in camper - Ago
Previous Next
18
camperos
camperos
29/12/2006 4709
Inserito il 30/03/2013 alle: 09:21:30
sta nascendo [;)] prima videata: prova tensione e memorizzazione valore alto e basso collegato un carico alla piccola batteria{ la tensione è scesa,ed il valore minimo è stato memorizzato, nello stesso tempo la batteria si è scaricata un pochino. il display indica, valore Max (batteria appena collegata) valore min (carico collegato) valore attuale (batteria un poco scaricata) D = day H = ore : minuti: secondi (dall'ultimo reset/accensione). percentuale stato batteria
18
mpsergio
mpsergio
06/05/2007 555
Inserito il 30/03/2013 alle: 10:21:54
Complimenti....sempre in attesa del progetto completo. Grazie Camperos. E buona pasqua
18
camperos
camperos
29/12/2006 4709
Inserito il 30/03/2013 alle: 10:27:45
prima devo fare le prove effettive,[^] sto procurando una vecchia AGM da 80 Ah per simulare assorbimento e carica Buona Pasqua!

Modificato da camperos il 30/03/2013 alle 10:28:58
18
camperos
camperos
29/12/2006 4709
Inserito il 30/03/2013 alle: 10:36:01
quote:Risposta al messaggio di Jorge inserito in data 28/03/2013  22:31:19 (Visualizza messaggio in nuova finestra)>
> giusto, anche se in teoria non dovrei mai superare i 3,5/4V, attualmente non ho ne uno ne l'altro.
18
mpsergio
mpsergio
06/05/2007 555
Inserito il 30/03/2013 alle: 16:24:58
Una domanda: dalla foto noto che il LCD ha la morsettiera. Poichè penso sia il FORDATA venduto da RS, la morsettiera l'hai saldata tu dopo ? Hai le caratteristiche ? dovrebbe essere passo 2,54. Grazie Sergio
18
camperos
camperos
29/12/2006 4709
Inserito il 30/03/2013 alle: 21:20:17
la foto inganna, l'LCD è un fenix trovato in offerta da Marcucci, il fordata l'ho usato per le temperature, comunque identico a parte che il fenix è a 20 caratteri

http://www.feniximvico.com/cata...

i morsetti sono sul circuito stampato che ho costruito, si deve cercare in rete, sicuramente esiste uno "shield" già fatto low cost. shield a 1 rele (opzionale) shield lcd con Key ps, sto impazzendo con Fritzing per lo schema.
18
camperos
camperos
29/12/2006 4709
Inserito il 30/03/2013 alle: 21:22:32
[code] //collegamenti // due fili alla batteria servizi // 3 fili ad Allegro ACS758 50A bipolare // alimentazione 12V #include <LiquidCrystal.h> #include <swRTC.h> swRTC rtc; LiquidCrystal lcd(12, 11, 5, 4, 3, 2); float ingressoVolt; float ingressoAmpere; int rele = 8; int buzzer = 9; int ledRosso =13; float volt; float voltMax; //volt max (hold) float voltMin = 1023; //volt min (hold) float ampere; float ampereMax = 1023; //ampere consumo max (hold) float ampereBil; //ampere in bilancio tra caricati e scaricati float ampereKa; // aampre caricando float ampereKaMax; //ampere caricando max (hold) int watt; int wattKa; //watt caricando int carica; // per percentuale stato carica batteria unsigned long msec =0; // per wattOre, amperOre in carica, consumo e in bilancio unsigned long millisec; // unsigned long secondi; // unsigned long ore; // unsigned long minuti; // float millivolt; // float tempo; // int avanzare; // float caricaTot ; // float caricaTotKa ; // float caricaTotBil; // float ampMedio; // float ampMedioKa; // float ampMedioBil; // float ampOre; // float ampOreKa; // float ampOreBil; // int wattOre; // int wattOreKa; // int wattOreBil; // int tastoTaci; // tacitazione allarme int puls; // pulsante sequenze lcd int cambia =0; // cambio di stato int state = 0; // cambio di stato int ciao = 0; // cambio di stato int miao = 0; // cambio di stato int ziao = 0; // cambio di stato int piao = 0; // cambio di stato void setup() { lcd.begin(20, 4); Serial.begin (9600); rtc.stopRTC(); rtc.setTime(00, 00, 00); rtc.startRTC(); pinMode(13, OUTPUT); pinMode(10, INPUT); pinMode(9, OUTPUT); pinMode(8, OUTPUT); lcd.clear(); } void loop() { lcd.setCursor(0, 0); //cursore vai al primo carattere della prima rica lcd.print("D "); lcd.print(rtc.getDay(), DEC); // fammi vedere i giorni lcd.setCursor(5, 0); lcd.print("H "); lcd.print(rtc.getHours(), DEC); // fammi vedere le ore lcd.print(":"); lcd.print(rtc.getMinutes(), DEC); // fammi vedere i minuti lcd.print(":"); lcd.print(rtc.getSeconds(), DEC); // fammi vedere i secondi lcd.print(" "); ingressoVolt = analogRead (A3); //collego batteria servizi delay(50); volt = ingressoVolt*(20.1 / 1023.0); //calcolo del partitore di tensione, 20V in, 5V out delay(50); // consiglio 4 resistenze identiche tra loro, meglio da 10Kohm, // 3 in parallelo tra il meno e pin arduino, 1 tra segnale e pin arduino ingressoAmpere = analogRead (A2); //collego sensore mpere ACS 758 millivolt = ingressoAmpere * (5000.0 / 1023.0); //calcoli per Allegro ACS 758 50A bi millivolt = millivolt - 2500 ; //calcoli per Allegro ACS 758 50A bi delay(50); //calcoli per Allegro ACS 758 50A bi ampere = millivolt/40; //calcoli per Allegro ACS 758 50A bi if (ampere > 0){ // solo negativi, consumando ampere=0; } delay(50); watt = volt * ampere; // calcolo dei watt consumando delay(50); avanzare = avanzare + 1; // calcolo per i wattOra, amperOra consumate millisec = millis(); // calcolo per i wattOra, amperOra consumate tempo = millisec/1000.0/3600.0 ; // calcolo per i wattOra, amperOra consumate caricaTot = caricaTot + ampere; // calcolo per i wattOra, amperOra consumate ampMedio = caricaTot / avanzare; // calcolo per i wattOra, amperOra consumate ampOre = ampMedio*tempo ; // calcolo per amperOra consumate delay(50); wattOre = volt * ampOre; //wattOre consumate delay(50); carica = ingressoVolt/(1023.0/20.0/100.0) -1180; //calcolo percentuale carica batteria, 11,80v == 0%,, 12,80v == 100% carica = constrain (carica, 0, 100); //calcolo percentuale carica batteria, 11,80v == 0%,, 12,80v == 100% delay(50); ampereKa = millivolt/40; //calcoli per Allegro ACS 758 50A bi if (ampereKa < 0){ // solo positivi, caricando ampereKa=0; } delay(50); wattKa = volt * ampereKa; //watt caricando delay(50); caricaTotKa = caricaTotKa + ampereKa; // calcolo per i wattOra, amperOra caricate ampMedioKa = caricaTotKa / avanzare; // calcolo per i wattOra, amperOra caricate ampOreKa = ampMedioKa*tempo ; // calcolo per amperOra caricate delay(50); wattOreKa = volt * ampOreKa; // wattOra caricate delay(50); ampereBil = millivolt/40; // calcolo per i wattOra, amperOra in bilancio delay(50); caricaTotBil = caricaTotBil + ampereBil; // calcolo per i wattOra, amperOra in bilancio ampMedioBil = caricaTotBil / avanzare; // calcolo per i wattOra, amperOra in bilancio ampOreBil = ampMedioBil*tempo ; // calcolo per amperOra in bilancio wattOreBil = volt * ampOreBil; // watt in bilancio delay(50); voltMax = max(volt, voltMax); // per far restare inpresso i volt max raggiunti voltMin = min(volt, voltMin); // per far restare inpresso i volt min raggiunti ampereMax = min(ampere, ampereMax); // per far restare inpresso gli ampere min raggiunti in consumo ampereKaMax = max(ampereKa, ampereKaMax); // per far restare inpresso gli ampere max raggiunti in carica //---------------------------------------- lcd.setCursor(15, 0); lcd.print("% "); lcd.print(carica); lcd.print(" "); //-------------------------------------------- tastoTaci = digitalRead (10); if ((volt <11.80)and(tastoTaci ==LOW)and(cambia == 0)) { digitalWrite(ledRosso,HIGH); // segnalazione allarme batt scarica analogWrite (buzzer, 1000); // allarme digitalWrite (rele,HIGH); // rele fai qualcosa cambia=1; } else if ((volt <11.80)&& (tastoTaci ==HIGH)&&(cambia==1)){ digitalWrite(ledRosso,LOW); analogWrite (buzzer, LOW); digitalWrite (rele,LOW); cambia=1; } if (volt > 11.80){ digitalWrite(ledRosso,LOW); analogWrite (buzzer, LOW); digitalWrite (rele,LOW); cambia=0; } //------------------------------------------------------------------------------------------------------------------------------ puls = digitalRead(6); // faccio pigiare il pulsante alla ragazza di turno if ((puls==HIGH )&& (state==0)){ lcd.setCursor(0, 1); lcd.print("Ti Amo "); lcd.setCursor(0, 2); lcd.print("che fai "); lcd.setCursor(0, 3); lcd.print("stasera ? "); state=1; ziao=0; } //----------------------------------------------------- if ((puls==LOW )&& (state==1)) { // rilascia il pulsante lcd.setCursor(0, 1); lcd.print("Volt BS "); lcd.print(volt,2); lcd.print(" "); lcd.setCursor(0, 2); lcd.print("Volt Max "); lcd.print(voltMax); lcd.print(" "); lcd.setCursor(0, 3); lcd.print("Volt Min "); lcd.print(voltMin); lcd.print(" "); ciao=1; } //--------------------------------------------------------------------------------------------------------------------------------- if ((puls==HIGH )&& (ciao==1)){ //faccio rischiacciare il pulsante alla ragazza di turno lcd.setCursor(0, 1); lcd.print("Ti Amo "); lcd.setCursor(0, 2); lcd.print("che fai "); lcd.setCursor(0, 3); lcd.print("stasera ? "); state=3; ciao=2; } //----------------------------------- if ((puls==LOW )&& (ciao==2)) { // rilascia il pulsante lcd.setCursor(0, 1); lcd.print("A Konsumo "); if (ampere>=0){ lcd.setCursor(14, 1); } lcd.print(ampere,1); lcd.print(" "); lcd.setCursor(0, 2); lcd.print("A KonsumoMax "); lcd.print(ampereMax,1); lcd.print(" "); lcd.setCursor(0, 3); lcd.print("W konsumo "); lcd.setCursor(13, 3); if (ampere >= 0){ lcd.setCursor(14, 3); } lcd.print(watt); lcd.print(" "); state=3; miao=1; } //---------------------------------------------------------------------------------------------------------------------- if ((puls==HIGH )&& (miao==1)) { //magari non ha capito lcd.setCursor(0, 1); lcd.print("Ti Amo "); lcd.setCursor(0, 2); lcd.print("che fai "); lcd.setCursor(0, 3); lcd.print("stasera ? "); state=3; ciao=3; miao=2; } //---------------------------------------- if ((puls==LOW )&& (miao==2)) { lcd.setCursor(0, 1); lcd.print("A Karika "); lcd.setCursor(13, 1); lcd.print("+"); lcd.print(ampereKa,1); lcd.print(" "); lcd.setCursor(0, 2); lcd.print("W Karika "); lcd.setCursor(13, 2); lcd.print("+"); lcd.print(wattKa); lcd.print(" "); lcd.setCursor(0, 3); lcd.print("A KarikaMax "); lcd.setCursor(13, 3); lcd.print("+"); lcd.print(ampereKaMax,1); lcd.print(" "); state=3; ciao=3; ziao=1; } //---------------------------------------------------------------------------------------------------------- if ((puls==HIGH )&& (ziao==1)) { //magari non ha capito lcd.setCursor(0, 1); lcd.print("Ti Amo "); lcd.setCursor(0, 2); lcd.print("che fai "); lcd.setCursor(0, 3); lcd.print("stasera ? "); state=3; ciao=3; miao=3; ziao=2; } //--------------------------------------------- if ((puls==LOW )&& (ziao==2)) { lcd.setCursor(0, 1); lcd.print("Ah konsumo "); lcd.setCursor(13, 1); if (ampOre >= 0){ lcd.setCursor(14, 1); } lcd.print(ampOre,1); lcd.print(" "); //-------------- lcd.setCursor(0, 2); lcd.print("Ah Karika "); lcd.setCursor(13, 2); lcd.print("+"); lcd.print(ampOreKa,1); lcd.print(" "); //---------- lcd.setCursor(0, 3); lcd.print("Ah Bilancio "); if (ampOreBil > 0){ lcd.setCursor(13, 3); lcd.print("+"); } lcd.setCursor(14, 3); if (ampOreBil < 0){ lcd.setCursor(13, 3); } lcd.print(ampOreBil,1); lcd.print(" "); state=3; ciao=3; miao=3; piao=1; } //------------------------------------------------------------------------------------------------------- if ((puls==HIGH )&& (piao==1)) { lcd.setCursor(0, 1); lcd.print("Ti Amo "); //---- lcd.setCursor(0, 2); lcd.print("che fai "); //--- lcd.setCursor(0, 3); lcd.print("stasera ? "); state=3; ciao=3; miao=3; ziao=3; piao=2; } //--------------------------------- if ((puls==LOW )&& (piao==2)) { lcd.setCursor(0, 1); lcd.print("Wh konsumo "); lcd.setCursor(13, 1); if (wattOre >= 0){ lcd.setCursor(14, 1); } lcd.print(wattOre); lcd.print(" "); //---- lcd.setCursor(0, 2); lcd.print("Wh Karika "); lcd.setCursor(13, 2); lcd.print("+"); lcd.print(wattOreKa); lcd.print(" "); //--- lcd.setCursor(0, 3); lcd.print("Wh Bilancio "); if (wattOreBil > 0){ lcd.setCursor(13, 3); lcd.print("+"); } lcd.setCursor(14, 3); if (wattOreBil < 0){ lcd.setCursor(13, 3); } lcd.print(wattOreBil); lcd.print(" "); state=0; ciao=3; miao=3; ziao=3; piao=3; } } [/code]

Modificato da camperos il 30/03/2013 alle 21:25:09
18
camperos
camperos
29/12/2006 4709
Inserito il 30/03/2013 alle: 21:31:05
scusate le KK le ho usate per differenziare meglio ciò che stavo facendo consumo ampere degli elettrodomestici collegati prova effettuata con successo [:)]

Modificato da camperos il 30/03/2013 alle 21:33:37
18
camperos
camperos
29/12/2006 4709
Inserito il 30/03/2013 alle: 21:39:27
scusate le K ampere in carica anche questa prova è ok

Modificato da camperos il 30/03/2013 alle 21:42:29
18
camperos
camperos
29/12/2006 4709
Inserito il 30/03/2013 alle: 21:53:32
consumato 0.5 ampere/ora caricate 0.2 ampere/ora il bilancio tra i 2 valori, più consumato che caricato di 0.2 ampere/ora comunque questo valore va migliorato, seguendo il thread si evince che, se come targa,per caricare una batteria servono 50Ah, si devono mettere almeno 60 Ah
18
camperos
camperos
29/12/2006 4709
Inserito il 30/03/2013 alle: 22:02:29
watt /ora un pò la batteria è stata caricata... ma non abbastanza da raggiungere 0.1 Wh
18
camperos
camperos
29/12/2006 4709
Inserito il 30/03/2013 alle: 22:08:07
si ritorna ai volt pulsante 1, reset pulsante 2, retroilluminazione LCD pulsante 3, sequenza schermate pulsante 4, tacitazione buzzer e led allarme batteria sotto gli 11,8V
17
Jorge
Jorge
09/04/2008 526
Inserito il 30/03/2013 alle: 22:43:31
quote:Risposta al messaggio di camperos inserito in data 30/03/2013  22:08:07 (Visualizza messaggio in nuova finestra)>
> Camperos...troppo forte !, buona Pasqua.
18
mpsergio
mpsergio
06/05/2007 555
Inserito il 30/03/2013 alle: 22:47:37
Un lavorone, complimenti. Mi ci vorra' un po per capire lo sketch ma cercchero' di realizzarlo anche io.
16
calasci
calasci
29/08/2009 10409
Inserito il 31/03/2013 alle: 09:23:13
buon lavoro e buona pasqua
13
miki65123
miki65123
07/01/2012 19
Inserito il 02/04/2013 alle: 01:35:15
Complimenti Camperos ! veramente un bel lavoro , grazie per la condivisione...
SostaGruppiCompagniItaliaEsteroMarchiMeccanicaCellulaAccessoriEventiLeggiComportamentiDisabiliIn camper perAltro CamperAltroExtra
Come-scegliere-il-camper
2
164k Facebook
342k Instagram
42,6k TikTok
72,6k Youtube
CamperOnLine - Copyright © 1998-2025 - P.Iva 06953990014
Informativa privacy
Loading...

Accedi

Recupera Password
Nuovo utente

Vuoi eliminare il messaggio?

Sottoscrizione

Anteprima

PREFERENZA

Il messaggio è in fase di inserimento.

loading

CamperOnLine

Buongiorno gentile utente,

da oltre 20 anni Camperonline offre gratuitamente tutti i suoi servizi
grazie agli inserzionisti che ci hanno dato la loro fiducia, permettici di continuare il nostro lavoro disattivando il blocco delle pubblicità.

Grazie della collaborazione.

Azione eseguita con successo

Azione Fallita

Condividi

Condividi questa pagina con:

O copia il link