roberto8303 Inserito: 22 maggio 2015 Segnala Share Inserito: 22 maggio 2015 Come da titolo devo proteggere la porta analogica di arduino da sovratensioni, devo lavorare con una tensione da 0,6v ed 2,5v che mi da un sensore galleggiante, esso pero è alimentato a 12vdc da una batteria al piombo, ovviamente per stare tranquillo voglio proteggere la porta A0 di arduino, ho pensato ad uno zener da 4,8volt collegato come da schema tra il pin e la massa senza alcuna resistenza vabbene o sbaglio? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 23 maggio 2015 Segnala Share Inserita: 23 maggio 2015 Per limitare a meno di 5 V va bene. L'unico problema potrebbe essere che se l'uscita del sensore, in caso di guasto potesse erogare correnti elevate lo zener potrebbe guastarsi e magari aprirsi, annullando così l'effetto di protezione. Devi mettere un fusibile sull'alimentazione del sensore che ti garantisca l'intervento ad un livello di corrente che eviti il danneggiamento dello zener. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 23 maggio 2015 Autore Segnala Share Inserita: 23 maggio 2015 Il sensore e il classico galleggiante a leva per il carburante con la resistenza variabile pero meglio essere sicuri quindi il fusibile di quanti mA dovrei metterlo?poi un altra domanda devo metterlo all uscita del segnale del sensore in serie al diodo zener e pin arduino? E un applicazione chr mi sta dando rogne, c e una centralina del gruppo elettrogeno che utilizza questo galleggiante solo per mandare il gruppo in avaria con riserva carburante,il cliente chiede di avere un indicatore per vederr quando fanno il rifornimento. Inizialmente installai il classico strumenti vdo con la lancetta ma dava problemi alla centralina provocando l avaria anche se il serbatoio era pieno. Quindi ho pensato ad un sistema digitale di misura con arduino. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 23 maggio 2015 Segnala Share Inserita: 23 maggio 2015 Molto dipende dallo zener, devi verificare la corrente massima ammessa ed agire di conseguenza. Se, ad esempio, fosse uno zenere da 400 mW avresti una corrente massima <85mA. Se il fusibile lo metti in serie alla lina di misura avrai comunque una piccola caduta di tensione, probabilmente trascurabile. Ci vuole un fusibile del tipo super rapido. Se riesci a reperirme da 50 mA super rapidi hai la protezione (quasi) perfetta. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 24 maggio 2015 Autore Segnala Share Inserita: 24 maggio 2015 (modificato) Restando in tema per arduino, ho bisogno di realizzare quindi la bar Graph sul lcd ho questa libreria, ma come posso fare che la stringa sull lcd aumenti con questa proporzione, ingresso A0= 0,1024 ed visualizzazione della bar graph al contrario cioe tutta piena con 0 volt e vuota con 2,5volt? questo il codice ma non riesco a mappare il segnale A0 perche è dichiarato come byte e non intero E poi avrei bisogno di scrivere alla prima riga LIVELLO GASOLIO e sotto la bar graph che aumenta e diminusce, ma gia in questo esempio di codice non riesco a spostare la bar graph all seconda riga #include <LiquidCrystal.h> #include <LcdBarGraph.h> byte lcdNumCols = 16; // -- number of columns in the LCD byte sensorPin = 0; // -- value for this example LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // -- creating LCD instance LcdBarGraph lbg(&lcd, lcdNumCols); // -- creating void setup(){ // -- initializing the LCD lcd.begin(2, lcdNumCols); lcd.clear(); // -- do some delay: some time I've got broken visualization delay(100); } void loop() { // -- draw bar graph from the analog value readed lbg.drawValue( analogRead(sensorPin), 1024); // -- do some delay: frequent draw may cause broken visualization delay(100); } Modificato: 24 maggio 2015 da roberto8303 Link al commento Condividi su altri siti More sharing options...
accacca Inserita: 24 maggio 2015 Segnala Share Inserita: 24 maggio 2015 Non puoi passare il valore analogico letto devi rielaborarlo facendo la proporzione Nel tuo caso devi convertire un valore da 0..1023 a 255..0 255 - (ADletto >> 2) che per AD = 0 restituisce 255 per AD = 1023 ti restituisce 0 Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 24 maggio 2015 Segnala Share Inserita: 24 maggio 2015 (modificato) c'e' la funzione map per fare questo , cioe' una scalatura tramite interpolazione lineare Modificato: 24 maggio 2015 da walterword Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 24 maggio 2015 Autore Segnala Share Inserita: 24 maggio 2015 allora sono riuscito ad eleborare l ingresso con la mappatura map, ma come si fa ad spostare la bar graph alla riga di sotto dell lcd? perche sopra devo scrivere livello è il numero in percentuale da 0 a 100% Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 24 maggio 2015 Segnala Share Inserita: 24 maggio 2015 non lo so non conosco la libreria della barra , dacci un'occhiata dentro Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 25 maggio 2015 Segnala Share Inserita: 25 maggio 2015 C'è un'istruzione che specifica riga e colonna del dispay. Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 25 maggio 2015 Segnala Share Inserita: 25 maggio 2015 comunque la bargraph si puo ' fare anche senza libreria dedicata .....basta mettere i caratteri giusti al posto giusto con la libreria I2C solita Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 25 maggio 2015 Autore Segnala Share Inserita: 25 maggio 2015 si lo so ma è esce un codice abbastanza lungo è un po noioso, Livio dici che c è un istruzione? ho provato set cursor ma non va...oggi riprovo Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 25 maggio 2015 Segnala Share Inserita: 25 maggio 2015 L'istruzione è proprio lcd.setcursor(x,y) Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 25 maggio 2015 Autore Segnala Share Inserita: 25 maggio 2015 si quella ho provato ad inserirla nel loop prima di lbg.drawValue( analogRead(sensorPin), 1024); evidentemente devo provare nel void setup... Link al commento Condividi su altri siti More sharing options...
giacomo56 Inserita: 26 maggio 2015 Segnala Share Inserita: 26 maggio 2015 Prova a creare la barra con LcdBarGraph lgb(&lcd, lcdNumCols, lcdNumCol, lcdNumRow). Le righe e le colone partono da zero. Ciao. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 26 maggio 2015 Autore Segnala Share Inserita: 26 maggio 2015 ah ottima idea appena posso provo,dovrebbe funzionare grazie giacomo56 Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 26 maggio 2015 Autore Segnala Share Inserita: 26 maggio 2015 niente non va, prima mi dice errore di dichiarazioni varibile poi la dichiaro come byte prima del setup e non succede nulla la barra parte sempre a da sopra... Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 26 maggio 2015 Autore Segnala Share Inserita: 26 maggio 2015 (modificato) ragazzi ho scoperto il problema leggete qui I am confused. Here is how to use lcd.begin()and the library has:lcd.begin(2, lcdNumCols);The two arguments are entirely swapped. I don't know if the rest of the library would work at all after seeing this line in the library sample code. The library author definitely loses some credibility by screwing up the most basic thing of lcd. I suggest you use the right thing: lcd.begin(lcdNumCols, 2); and see what happens (I bet nothing different).If what you mean by having no effect is adding the lcd.setCursor(0,1); has no effect and the bar graph is still on row 0, then the answer is simple: the library is hardwired to display bar graph on row 0 and a nuber on row 1. It's not terribly difficult to read through. Just find the location in the lib and make the change you need. devo mettere mano nella libreria ma come si fa??? Modificato: 26 maggio 2015 da roberto8303 Link al commento Condividi su altri siti More sharing options...
giacomo56 Inserita: 26 maggio 2015 Segnala Share Inserita: 26 maggio 2015 Se metto lcdNumRow = 1 mi disegna la barra nella seconda riga. Il problema nel mio caso è che i caratteri sono sbagliati, forse dipende dal display. La libreria è la 1.5. Ciao. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 26 maggio 2015 Autore Segnala Share Inserita: 26 maggio 2015 ah non ho fatto caso a questo, ma poi anche se sposta la riga si riesce a scrivere altro con il classico lcd write? Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 27 maggio 2015 Autore Segnala Share Inserita: 27 maggio 2015 (modificato) Alla fine ho fatto cosi...https://m.youtube.com/watch?feature=youtu.be&v=aygpABapOFc Modificato: 27 maggio 2015 da roberto8303 Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 27 maggio 2015 Segnala Share Inserita: 27 maggio 2015 Hai risolto brillantemente il problema dell'indicatore. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 27 maggio 2015 Autore Segnala Share Inserita: 27 maggio 2015 grazie livio, prima di andarlo ad installare ho un unico dubbio, l alimentazione dalla batteria con il motorino d avviamento o l alternatore se potrebbe dare qualche problema ad arduino... Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 27 maggio 2015 Segnala Share Inserita: 27 maggio 2015 metti qualche filtro sull'alimentazione Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 27 maggio 2015 Segnala Share Inserita: 27 maggio 2015 l alimentazione dalla batteria con il motorino d avviamento o l alternatore se potrebbe dare qualche problema ad arduino... Non potrebbe, ma è quasi certo che lo darà qualche problema. Metti un regolatore tipo LM7808 tra batteria ed Arduino, così limiti la tensione a 8V, che fa solo bene al regolatore di Arduino. Poi se ci metti in serie, dalla parte della batteria, un bella induttanza di filtro con 2 elettrolitici e 2 ceramici, realizzando un filtro a "pigreco", dovresti ammazzare i disturbi che genera l'alternatore. Cura bene gli zeri volt. Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora