ilguargua Inserita: 24 gennaio 2018 Segnala Inserita: 24 gennaio 2018 13 minuti fa, GiRock scrisse: @ilguargua hai usato un simulatore??? No, ma solo perché non ce l'ho, non perché sia contrario. Comunque il Simulino sembra che ci azzecca, e parecchio.... 17 minuti fa, GiRock scrisse: Ho trovato pure io l'errore, quel maledetto ndx<<=i; non c'entrava proprio... Infatti, quello invece non c'azzeccava per niente... Ciao, Ale.
Livio Orsini Inserita: 24 gennaio 2018 Segnala Inserita: 24 gennaio 2018 Finalmente ho capito che......non ci siamo capiti. L'uso di digitalRead è perchè è di più fcile comprensione che leggere la porta e si può usare anche per leggere segnali su porte differenti. Se i segnali sono adiacenti sulla stessa porta allora vale la pena di leggere la porta. La differenza di velocità sta tutta nel modo di selezionare il bit. Se si fanno di seguito uno per uno si allunga il codice ma si risparmaia tempo. Se fa un loop con un for o un while si risparmiano righe ma si allungano i tempi. Spero che ora sia chiaro e senza incomprensioni. Poi io uso, per arduino, una funzione parametrica che, sfruttando digitalRead, mi è comoda per poter leggere ingressi sparsi. Anche il "C" di PICC, che uso per i pic, ha una funzione similare si chiama test_bit (o bit_ test); però quando devo stressare i tempi uso la mia macro in ASM che legge il bit della porta.
roberto8303 Inserita: 26 gennaio 2018 Autore Segnala Inserita: 26 gennaio 2018 mi sono arrivati i display a segmenti adafruit che utilizzano una loro libreria si puo stampare una variabile sia in decimale o in esadecimale, ma la cosa che piu mi interessa è avere due valori da 0 a 15 letti da due potenziometri sullo stesso display come fosse un orologio ore : e minuti. Ho utilizzato questo esempio per scrivere in ordine l ora a due cifre nel display nelle posizioni 0 e 1 (i primi due led a segmento) e poi i minuti nelle posizioni 3-4(gli ultimi due led del display) Condivido il codice qui sotto matrix.clear(); int h1 = pot1 / 10; //pot1=6 int h2 = pot1 - h1 * 10; int m1 = pot2/ 10; //pot2=11 int m2 = pot2 - m1 * 10; // Send data to display matrix.writeDigitNum(0, h1, false); // qui segna 0 primo led matrix.writeDigitNum(1, h2, false); // qui segna 6 secondo led matrix.drawColon(1); // due punti centrali matrix.writeDigitNum(3, m1, false); / /qui segna 1 matrix.writeDigitNum(4, m2, false); //qui segna 1 matrix.writeDisplay(); delay(500);n
roberto8303 Inserita: 26 gennaio 2018 Autore Segnala Inserita: 26 gennaio 2018 int h1 = pot1 / 10; //pot1=6 int h2 = pot1 - h1 * 10; chi mi aiuta a capire come in h2 risulta 6? h1= 6/10=0,6 h2= 6-0,6*10= 6-6=0 ??
ilguargua Inserita: 26 gennaio 2018 Segnala Inserita: 26 gennaio 2018 1 ora fa, roberto8303 scrisse: int h1 = pot1 / 10; //pot1=6 int h2 = pot1 - h1 * 10; Se pot1 è 6, h1 è 0 , stai usando gli int(eger) cioè numeri interi, la parte decimale viene persa. 1 ora fa, roberto8303 scrisse: h2= 6-0,6*10= 6-6=0 ?? Questo non viene eseguito così, ma come pot1 - (h1 * 10). Usa le parentesi sempre, così non avrai sorprese. Ciao, Ale.
roberto8303 Inserita: 26 gennaio 2018 Autore Segnala Inserita: 26 gennaio 2018 ahh ecco quindi nella seconda espressione h1 vale 0 grazie ale
roberto8303 Inserita: 31 gennaio 2018 Autore Segnala Inserita: 31 gennaio 2018 Rieccomi, allora devo andare avanti userò dei sensori pnp ma volevo chiedere una cosa, le alimentazioni di tutti i sensori saranno a 12volt dalla batteria posso costruire un filtro anche sull ingresso della 12volt? cosi da alimentare con una tensione piu pulita i sensori pnp e anche i sensori di temperatura cioe tipo questo http://www.lamiaspecialcar.com/prodotto-143806/SENSORE-TEMPERATURA-ACQUA---M14X15---120C--VDO--DOPPIO-CONTATTO.aspx che mi da un valore di resistenza in funzione della temperatura. Ci saranno14 arduino su una basetta millefori ognuno con il suo filtro a 9volt con regolatore l7809 come dicemmo.
Livio Orsini Inserita: 31 gennaio 2018 Segnala Inserita: 31 gennaio 2018 Filtrare l'alimentazione dei sensori è doveroso.
roberto8303 Inserita: 31 gennaio 2018 Autore Segnala Inserita: 31 gennaio 2018 Quote Filtrare l'alimentazione dei sensori è doveroso. mi puoi consigliare quali componenti utilizzare Livio? e inoltre vabbene uno solo filtro e all uscita alimento tutti i sensori sia induttivi che di temperatura sul motore a scoppio? grazie
roberto8303 Inserita: 31 gennaio 2018 Autore Segnala Inserita: 31 gennaio 2018 potrebbe andare bene un filtro di rumore nelle autoradio? tipo questo https://www.amazon.it/Aerzetix-Filtro-antidisturbo-rumore-autoradio/dp/B0123CJIV4/ref=pd_cp_107_3?_encoding=UTF8&psc=1&refRID=QYG4RTY2S250DAXYZ2T1 oppure devo costruirlo io?
roberto8303 Inserita: 2 febbraio 2018 Autore Segnala Inserita: 2 febbraio 2018 si inizia, ho pensato di disporre un filtro con regolatore 7809 che alimenta due arduino per dimezzare i regolatori e condensatori su 14 arduino. Tra vcc e gnd è utile avere ancora un condensatore da 100nf? come da foto
roberto8303 Inserita: 6 febbraio 2018 Autore Segnala Inserita: 6 febbraio 2018 devo dire che resta pochissimo spazio...
roberto8303 Inserita: 7 febbraio 2018 Autore Segnala Inserita: 7 febbraio 2018 Per alimentare i sensori induttivi a 12volt è meglio utilizzare un regolatore 7812 oppure posso alimentarli direttamente da batteria? poi il segnale pnp tramite partitore con due resistenze passo dal trigger di smith ed entro nell arduino.
Livio Orsini Inserita: 7 febbraio 2018 Segnala Inserita: 7 febbraio 2018 Puoi filtrare il 12V della batteria con un filtro C-L-C, così da pulire l'alimentazione dei sensori. Mettere un 7812 alimentato dalla batteria non va bene; anche se usi un Low drop avresti sempre troppo poco margine.
roberto8303 Inserita: 10 febbraio 2018 Autore Segnala Inserita: 10 febbraio 2018 Primi test e primo problema, devo implementare una funzione che ricevendo un segnale +12volt dai fari del mezzo, devo poter variare la luminosità di tutti e 10 gli lcd, da programma tutto ok, Ho su ogni arduino programmato che se il pin 8 è a +5v regolo la luminosità attraverso un potenziometro unico da 10k su tutte le porte A0 e funziona. Il problema sorge con le due resistenze a partitore di tensione una da 10k e una da 4,7k sulla +12v al centro delle resistenze con il tester ho 4 volt e qualcosa. Ma il pin 8 su arduino riceve solo 1,8 volt questi 4 volt del partitore li sto mandando per adesso su 4 arduino tutti insieme e ho tra il pin 8 e gnd una resistenza da 10k per non lasciare aperto l ingresso. Potrebbero essere queste resistenze a farmi abbassare i volt da 4 sul partitore a 1,8 su tutti gli ingressi pin8? oppure il fatto di aver tutti i pin8 collegati insieme su un solo partitore? Se non è di semplice soluzione metto un relè +12 e uso i contatti per chiudere direttamente sulla 5volt di arduino perchè cosi funziona.
roberto8303 Inserita: 10 febbraio 2018 Autore Segnala Inserita: 10 febbraio 2018 la temperatura del regolatore 9v è sui 30 gradi, alimenta due arduino un regolatore 5v che alimenta i due display
ilguargua Inserita: 10 febbraio 2018 Segnala Inserita: 10 febbraio 2018 46 minuti fa, roberto8303 scrisse: Il problema sorge con le due resistenze a partitore di tensione una da 10k e una da 4,7k sulla +12v al centro delle resistenze con il tester ho 4 volt e qualcosa. Ma il pin 8 su arduino riceve solo 1,8 volt questi 4 volt del partitore li sto mandando per adesso su 4 arduino tutti insieme e ho tra il pin 8 e gnd una resistenza da 10k per non lasciare aperto l ingresso. Quindi, riassumendo, se non ho capito male te hai un partitore con 10k e 4.7k che colleghi ai pins 8 (??! non mi è chiaro questo riferimento) dove hai anche una resistenza da 10k verso massa. Conclusione, la resistenza bassa del partitore diventa 4 resistenze da 10k in parallelo (quindi 2.5k) con il parallelo 4.7k, uguale a 1632 ohm circa. Se fai un calcolo di un partitore siffato (10k + 1,632k) dovresti avere 1,684 V, non molto distante dal valore che misuri considerando le tolleranze dei componenti. Dov'è il problema? Togli le resistenze da 10k, gli ingressi rimangono comunque collegati verso massa dalla resistenza da 4.7k del partitore. Ciao, Ale.
roberto8303 Inserita: 10 febbraio 2018 Autore Segnala Inserita: 10 febbraio 2018 Si proprio cosi ti metto uno schizzo, il problema è che avro 10 display quindi 10 pin8 dove leggere la presenza del segnale +12v fari accesi.
roberto8303 Inserita: 10 febbraio 2018 Autore Segnala Inserita: 10 febbraio 2018 mi sa che devo toglierle tutte come dici tu Ale... le ho spezzate dal pin 8 e ora funziona bene!! quindi avere quella da 4,7k verso massa vabbene o è un valore troppo basso? penso non cambia nulla rispetto alla 10k?
roberto8303 Inserita: 10 febbraio 2018 Autore Segnala Inserita: 10 febbraio 2018 Funziona bene, prima regolo con il potenziometro con il +12 attivo, poi attacco e stacco il morsetto per simulare il +12 per avere la luminosita quasi al max di giorno quando i fari sono spenti
ilguargua Inserita: 10 febbraio 2018 Segnala Inserita: 10 febbraio 2018 18 minuti fa, roberto8303 scrisse: quindi avere quella da 4,7k verso massa vabbene o è un valore troppo basso? penso non cambia nulla rispetto alla 10k? Si, va più che bene, io la lascerei così. Le resistenze da 10k che volevi usare come pull-down non servono, il partitore ti assicura già 2 stati certi, 0 con assenza di tensione (il pin è collegato a massa dalla resistenza da 4.7k) e 1 quando applichi i 12V alla resistenza da 10k, quindi non sarà mai flottante. Ciao, Ale.
roberto8303 Inserita: 14 febbraio 2018 Autore Segnala Inserita: 14 febbraio 2018 andiamo avanti, devo utilizzare gli ultimi 4 arduino contatori rpm per controllare delle rotazioni e se una di questa scende al di sotto di una soglia per "cinghia rotta" devo far accendere un led di segnalazione. Ma solo se il quinto arduino degli rpm motore è al di sopra di 2600 rpm Consigli? avevo pensato di attivare 5 uscite e collegarle tutte in serie in modo da accendere il led solo se rpm motore è al di sopra di 2600 e gli altri al di sotto delle loro singole soglie. Elettronicamente qual è il modo piu semplice per collegare i 5 pin dei 5 arduino in serie tra loro per accendere un led?
ilguargua Inserita: 14 febbraio 2018 Segnala Inserita: 14 febbraio 2018 Qualcosa del genere? : Se devi solo accendere un led dovrebbe andare bene, altrimenti per il lato alto va usato un PNP e l'uscita deve andare bassa per attivarlo. Ciao, Ale.
ilguargua Inserita: 15 febbraio 2018 Segnala Inserita: 15 febbraio 2018 Ripensandoci, se devi solo accendere un led i transistor non ti servono proprio, puoi collegare direttamente il led (con la resistenza in serie) tra l'uscita RPM in alto e le altre in basso, invertendo i diodi e la logica delle uscite FAULT, o al limite puoi lasciare solo quello in basso se non vuoi invertire la logica dell'uscita. Ciao, Ale.
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