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 come Livella e Controllo servizi

Nuovo
Cerca
Berger Camping
SostaGruppiCompagniItaliaEsteroMarchiMeccanicaCellulaAccessoriEventiLeggiComportamentiDisabiliIn camper perAltro CamperAltroExtra
1 20 10
15
gelax
gelax
28/11/2010 267
Inserito il 26/04/2014 alle: 13:49:57
Ciao a tutti, incuriosito da alcuni post inseriti, ho deciso di cimentarmi con Arduino per creare una livella elettronica da utilizzare quando parcheggio il camper. In sostanza utilizzo il monitor della radio (ho diversi ingressi video) per presentare a video le inclinazioni del mezzo. Visto che Arduino ha molteplici ingressi/uscite, ho aggiunto anche le funzioni per accendere una luce in prossimità dello scarico acque nere (ho già la telecamere ma quando è buio non vedo nulla e devo comunque scendere), comandare la valvola di scarico (devo ancora instalarla), monitorare le tensioni delle batterie e visualizzare le temperature interne ed esterne con la relativa umidità. Sono ancora in fase di test a banco... sto solo aspettando il sensore di inclinazione per completare il progettino e poi passerò all'installazione sul camper. Vi posto alcune immagini del monitor: Visto che sul sito ci sono utenti mooolto più esperti di me, posto lo sketch che ho realizzato, piacerebbe avere consigli e suggerimenti per migliorare il progetto... #include <TVout.h> #include <fontALL.h> #include <DHT.h> #include <I2Cdev.h> #include <MPU6050.h> //include <Wire.h> #define DHTPINI 10 //Sonda Interna #define DHTPINE 8 // Sonda Esterna #define DHTTYPE DHT11 #define BUTTONLUCE 2 #define BUTTONVALVOLA 3 #define BM A4 #define BS A5 #define RelayLuceScarico 4 #define RelayValvolaScarico 5 MPU6050 accelgyro; int16_t ax, ay, az; int16_t gx, gy, gz; int ButtonLuceScarico = 0; int StatoLuceScarico = 0; int ButtonValvolaScarico = 0; int StatoValvolaScarico = 0; TVout TV; DHT dhti(DHTPINI, DHTTYPE); DHT dhte(DHTPINE, DHTTYPE); void setup() { dhti.begin(); dhti.begin(); //Wire.begin(); pinMode(BUTTONLUCE, INPUT); pinMode(BUTTONVALVOLA, INPUT); pinMode(RelayLuceScarico, OUTPUT); pinMode(RelayValvolaScarico, OUTPUT); TV.begin(PAL, 120, 96); TV.select_font(font6x8); TV.print(10, 30, "Welcome to Pegaso"); TV.print(47, 40, "off"); TV.print(18, 50, "Gelati Family"); TV.delay(4000); TV.clear_screen(); // accelgyro.initialize(); // TV.print(2, 60, "Testing MPU6050.."); // TV.print(2, 70, (accelgyro.testConnection() ? "MPU6050 OK" : "MPU6050 Failed")); } void loop() { inizio: //accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); int ti = dhti.readTemperature(); float hi = dhti.readHumidity(); int te = dhte.readTemperature(); float he = dhte.readHumidity(); TV.draw_line(0, 0, 120, 0, 1); TV.draw_line(0, 0, 0, 25, 1); TV.draw_line(119, 0, 119, 25, 1); TV.draw_line(0, 25, 120, 25, 1); TV.print(2, 5, "T.Cellula:"); TV.print(60, 5, ti); TV.print(72, 5, "c"); TV.print(80, 5, hi); TV.print(112, 5, "%"); TV.print(2, 15, "T.Esterna:"); TV.print(60, 15, te); TV.print(72, 15, "c"); TV.print(80, 15, he); TV.print(112, 15, "%"); TV.draw_line(0, 30, 120, 30, 1); TV.draw_line(0, 30, 0, 45, 1); TV.draw_line(119, 30, 119, 45, 1); TV.draw_line(0, 45, 120, 45, 1); int bm = analogRead(BM); float vbm = bm * (5.0 / 1023.0); TV.print(2, 35, "BM:"); TV.print(25, 35, vbm); TV.print(50, 35, "V"); int bs = analogRead(BS); float vbs = bs * (5.0 / 1023.0); TV.print(60, 35, "BS:"); TV.print(85, 35, vbs); TV.print(110, 35, "V"); StatoLuceScarico = digitalRead(RelayLuceScarico); StatoValvolaScarico = digitalRead(RelayValvolaScarico); if (StatoLuceScarico == HIGH) { TV.print(2, 50, "Luce Scarico: [ ON]"); } else { TV.print(2, 50, "Luce Scarico: [OFF]"); } if (StatoValvolaScarico == HIGH) { TV.print(2, 60, "Valv Scarico: [ ON]"); } else { TV.print(2, 60, "Valv Scarico: [OFF]"); } ButtonLuceScarico = digitalRead(BUTTONLUCE); ButtonValvolaScarico = digitalRead(BUTTONVALVOLA); if (ButtonLuceScarico == HIGH && ButtonValvolaScarico == LOW ) { goto LuceScarico; } else if (ButtonValvolaScarico == HIGH && ButtonLuceScarico == LOW ) { goto ValvolaScarico; } else if (ButtonValvolaScarico == HIGH && ButtonLuceScarico == HIGH ) { goto Bolla; } else { goto inizio; } LuceScarico: StatoLuceScarico = digitalRead(RelayLuceScarico); if (StatoLuceScarico == HIGH) { digitalWrite(RelayLuceScarico, LOW); delay(1500); goto inizio; } else { digitalWrite(RelayLuceScarico, HIGH); delay(1500); goto inizio; } ValvolaScarico: StatoValvolaScarico = digitalRead(RelayValvolaScarico); if (StatoValvolaScarico == HIGH) { digitalWrite(RelayValvolaScarico, LOW); delay(1500); goto inizio; } else { digitalWrite(RelayValvolaScarico, HIGH); delay(1500); goto inizio; } Bolla: //TV.print(2, 70, ("a/g:\t")); //TV.print(20, 80, (ax)); //TV.print(40, 80, (ay)); //TV.print(60, 80, (az)); //TV.print(20, 90, (gx)); //TV.print(40, 90, (gy)); //TV.print(60, 90, (gz)); TV.clear_screen(); TV.print(2, 10, "Level"); TV.print(2, 20, "Park"); //TV.print(2, 30, ""); TV.draw_line(81, 9, 113, 9, 1); //riga in alto TV.draw_line(81, 91, 113, 91, 1); // riga in basso TV.draw_line(80, 10, 80, 90, 1); // colonna sx TV.draw_line(113, 10, 113, 90, 1); // colonna dx TV.draw_line(79, 20, 79, 30, 1); //ruota ant. sx TV.draw_line(114, 20, 114, 30, 1); //ruota ant. sx TV.draw_line(79, 75, 79, 85, 1); //ruota post.sx TV.draw_line(114, 75, 114, 85, 1); //ruota post. dx delay(40000); TV.clear_screen(); goto inizio; } Marco

Modificato da gelax il 26/04/2014 alle 13:51:06
18
camperos
camperos
29/12/2006 4709
Inserito il 26/04/2014 alle: 16:47:08
ciao Marco i mie complimenti[:)] qui di esperti non se ne sono visti, ci sono amatori di Arduino [;)] utilizzi il "goto" anziché funzioni,per chi usa Arduino lo sketch diventa poco leggibile, quindi difficile aiutarti ad apportare eventuali modifiche. vedo che per i volt a monitor ci sono valori 4.8 e 5V, perchè non fai visualizzire la tensione reale? Arduino accetta max 5V, presumo utilizzi un partitore di tensione resistivo, comunque devi inserire il valore corrispondente ai 5V max che corrisponde alla tensione max calcolata. ad esempio se hai calcolato che 5V corrispondono a 20V reali: 20.0/1023.0 ciao

Modificato da camperos il 26/04/2014 alle 16:48:10
17
errepi
errepi
23/01/2008 1332
Inserito il 26/04/2014 alle: 20:34:11
ciao a te ed a tutti coloro che "ruotano"intorno ad arduino premesso che mastico un pò di elettricità e discreta manualità ma pochissima informatica sarei interessato a conoscere arduiNO Quali sono i requisiti minimi necessari per trafficare con arduino e quali i costi da mettere in conto in caso di fallimento? grazie a quelli che risponderanno slt roberto
quote:Risposta al messaggio di gelax inserito in data 26/04/2014  13:49:57 (Visualizza messaggio in nuova finestra)>
>
15
gelax
gelax
28/11/2010 267
Inserito il 26/04/2014 alle: 22:37:42
Grazie Camperos per i complimenti!! In effetti non uso un partitore di tensione, lo devo ancora realizzare, per ora ho solo fatto dei test con i 5v. Mi sapresti indicare i valori delle resistenze da utilizzare per il partitore? Per quanto riguarda la bolla sono in attesa del sensore e poi proverò a smanettare. Mi sto leggendo la guida di Arduino e sono ancora alle prime armi, visto che mi consigli le funzioni cercherò applicarle allo sketch ... se capisco come funzionano!! Per quanto riguarda i costi, ho speso 56 euro per un kit che comprende anche Arduino uno v3. Mi è scappato pure un corto e l'ho mezzo fritto, ora lo uso per i test ma sul camper ne metterò uno nuovo. Marco
17
feynman
feynman
28/09/2008 1321
Inserito il 26/04/2014 alle: 22:59:59
quote:Risposta al messaggio di gelax inserito in data 26/04/2014  22:37:42 (Visualizza messaggio in nuova finestra)>
> Puoi usare 1Kohm 3 3,9Kohm.
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
15
gelax
gelax
28/11/2010 267
Inserito il 26/04/2014 alle: 23:47:37
quote:Risposta al messaggio di feynman inserito in data 26/04/2014  22:59:59 (Visualizza messaggio in nuova finestra)>
> Ok e quindi considero una tensione max di 25v, giusto?
17
feynman
feynman
28/09/2008 1321
Inserito il 27/04/2014 alle: 07:27:01
quote:Risposta al messaggio di gelax inserito in data 26/04/2014  23:47:37 (Visualizza messaggio in nuova finestra)>
> Per tensione la puoi leggere in questo modo: loat vbm = bm * ((3,9 + 1) / 1.0)* 5.0 / 1023.0;

Modificato da feynman il 27/04/2014 alle 07:34:55
18
camperos
camperos
29/12/2006 4709
Inserito il 27/04/2014 alle: 11:57:59
per fare le prove che in qualche modo rispecchiano la reatà procurati una batteria a 12V tipo quelle degli allarmi. consiglio durante le prove di alimentare Arduino con alimentazione esterna e non da usb PC. potrebbe essere che dal pc escano 4.8V anziché 5V sempre come alimentazione (non come ingressi misure) Arduino ha un regolatore di tensione interno che converte in 5V , e comunque poi dovrai utilizzare questo quando monti Arduino sul camper

Modificato da camperos il 27/04/2014 alle 12:00:40
15
gelax
gelax
28/11/2010 267
Inserito il 27/04/2014 alle: 22:09:48
quote:Risposta al messaggio di camperos inserito in data 27/04/2014  11:57:59 (Visualizza messaggio in nuova finestra)>
> Per avere il risultato corretto ho dovuto inserire il codice nel seguente modo: float vbm = bm * 4.96 * 5 /1023; dove 4,96 è il calcolo del partitore resistivo e comunque il risultato non era identico alla misura effettuata con il tester. Grazie alla dritta di camperos ho modificato il valore 5 in 4,8 ( alimento la scheda tramite USB) ed il risultato ora è corretto, quando l'alimenterò direttamente tramite la batteria del camper con un riduttore di tensione a 9V il problema dovrebbe rientrare...

Modificato da gelax il 27/04/2014 alle 22:10:47
18
camperos
camperos
29/12/2006 4709
Inserito il 27/04/2014 alle: 23:35:30
anche se il datasheet di arduino dice che può essere alimentato max 20V, i 9 volt come farai tu è l'ideale, alimentandolo gia a 12-14V il regolatore di Arduino per portare la tensione a 5V scalda non poco
18
camperos
camperos
29/12/2006 4709
Inserito il 13/05/2014 alle: 21:36:19
hai gia visto questo?

https://www.youtube.com/watch?v...

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