Verifica led fulminati

Salve, sono nuovo di arduino. In vb.net ho fatto un semplice programma che, tramite porta com, comunica con arduino e premendo un bottone mi accende dei led posizionati nei pin 8 e 9.... mi chiedevo, come faccio a fare una verifica sui led che siano funzionanti e non fulminati? In modo che nel programma imposto un pulsante "verifica " che mi dice in caso di led fulminato, quale led è, cioè a che pin corrisponde o in che posizione si trova ( primo led, secondo led. ...). Grazie

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni e a leggere il regolamento: Regolamento - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - qui le pinout delle varie schede by xxxPighi: Pinout - qui una serie di link [u]generali[/u] utili: Link Utili

Aspetta risposta da un elettronico esperto, ma secondo me non lo puoi fare da programma così com'è. Arduino con HIGH mette sul pin 5V poi se quei 5V accendono o no il led perchè guasto, secondo me Arduino non lo può sapere. A meno di fare ulteriore circuito/collegamento ad altro pin di verifica.

... con un pin digitale controlli l'accensione e con uno analogico misuri la tensione ... se hai capi del LED (... mi raccomando la resistenza) c'è la tensione tipica di giunzione il LED funziona, se ci sono 5V è bruciato se ci sono 0V è in corto :)

Guglielmo

Grazie a tutti. Quindi in ogni caso devo occupare un altro pin. Siccome per quel che ho in mente, dovrò usare tanti led, mi sarebbe piaciuto risparmiare pin. Però se nn si può fare, pazienza. .. prenderò un moltiplicatore. Appena posso fare una prova vi aggiorno. Nel frattempo grazie per le risposte e Prego chi legge di condividere tutte le proprie soluzioni a riguardo

... puoi sempre usare dei multiplexer sia digitali per inviare l'alimentazione che analogici per le letture :)

Guglielmo

Oppure guardi i LED e ti accorgi se funzionano.

Scherzavo.

Tornando serio... Se i LED sono vicini, puoi mettere un sensore che legge la quantità di luce. Misuri la luce ambiente. Accendi i LED uno alla volta e ogni volta misuri la luce vista dal sensore, se il LED che in quel momento è acceso funziona, dovrai misurare un aumento dal sensore rispetto alla luce ambiente. Altrimenti quel LED è guasto.

Un secondo. .... ma come faccio a far ricevere dati a vb.net da arduino? Finora ho fatto solo il contrario, ho solo inviato dati ad arduino da vb.net

... sempre una comunicazione seriale è ... scrivi sulla seriale di Arduino, leggi sulla seriale del PC ;)

Guglielmo

Giusto.... provo

Mi sono reso conto che non so come fare. Allora, da vb.net mando ad esempio la stringa "accendi" sulla com1 e su arduino c'è un serial.read () che se legge "accendi, accende il led.... esiste anche un serial.write()? Se si, come si usa?

... è bene che ti studi tutti i vari metodi della classe Serial ;)

Guglielmo

P.S.: Guardati anche gli esempi nel IDE ... "Communication"

Non riesco ad inviare stringhe in ascii da arduino a vb.... se tipo invio serial.write ("A1"), vb.net lo legge come "65".... che corrisponde alla A.... come faccio?

La vita media di un LED (inteso che la luminositá iniziale si dimezza) é alta- Parliamo di 50000 a 100000 ore. Non ha senso fare un controllo del LED se li alimenti in modo corretto. Puoi sempre nell'accensione accendere tutti i LED e avere cosí un controllo visivo.

Ciao Uwe

In effetti sono diodi laser. .. ho detto led per semplificare, alla fine è uguale visto che il problema non è nel componente. ... comunque in effetti finora usavo Serial1.ReadChar() in vb per leggere il serial.write().... è se usassi Serial1.ReadLine() ? Il fatto è che vb.net mi legge i caratteri in decimale, ma io voglio vedere l'ascii perché sono tanti laser con nomi tipo A1, B1 etc... è mi serve che vb mi dica il nome preciso del laser fulminato o guasto per un qualsiasi motivo

... la risposta è sempre la stessa ... bisogna che [u]TI STUDI BENE TUTTI[/u] i vari metodi della classe Serial e vedi quelli che più fanno al caso tuo. Ci sono esempi anche nell'IDE.

Guglielmo

Sui diodi LASER di solito c'è il terzo piedino che serve proprio a leggere la luce emessa... Se spieghi meglio cosa vuoi fare, verrà più facile aiutarti.

paulus1969: Sui diodi LASER di solito c'è il terzo piedino che serve proprio a leggere la luce emessa... Se spieghi meglio cosa vuoi fare, verrà più facile aiutarti.

Dubito che stia usando dei diodi laser, visto che serve un apposito driver a corrente costante fatto bene altrimenti li bruci che è un piacere, è più facile che usa dei moduli laser a 5V, tra parentesi in questo caso non c'è modo di sapere se il laser funziona oppure no senza aprire il modulo e verificare la tensione sul laser vero e proprio.

Guglielmo io ti ringrazio per il consiglio, che ti assicuro ho iniziato a seguire dalla prima volta che me l'hai dato... Sto studiando ma non ho tempo, quindi se una persona normale assimila determinate informazioni in una settimana , a me ne servono tre. per raggiungere il mio luogo di lavoro ci metto 2 ore e mezza, lavoro 8 ore, ed altre 2 ore e mezza per tornare....capirai che non ho la mente freschissima alla sera. Ecco perchè chiedo aiuto, non sono stupido, se studio le cose le capisco, ma mi ci vuole troppo tempo (e comunque ripeto che sto studiando, ma mi i vuole un pò.... :confused: )

di elettronica sono un completo ignorate....sono dei laser con 2 fili, non sò altro...i collegamenti non li faccio io XD....Comunque vi spiego meglio. C'è una serie di laser che puntano su di un riquadro e ti indicano le zone dove inserire dei coni (non state a chiedermi perchè devo infilare dei coni che è molto lungo il discorso :) ). Ora, cosa sono riuscito a fare: c'è una bradboard dove chi di dovere ha collegato tutti i fili etc... fatto sta che ha fatto un circuito che verifica se esce corrente dal laser o meno, e che quindi se non esce corrente vuol dire che non funziona/fulminato. Chi di dovere ha fatto le cose bene, i laser si accendono e formano gli schemi desidetati, da vb.net invio comandi ad arduino, che a seconda del comando che legge, accende i laser desiderati. Il controllo dei laser: arriva un filo su un altro pin digitale, quindi, se è 1(arriva corrente) e il programma mi segnala il malfunzionamento, se 0 (non arriva corrente) e il programma alla verifica segnala ok. spero che abbiate capito, sono consapevole della mia poca chiarezza nello spiegare il tutto, me ne scuso.... IL PROBLEMA: se devo inviare 1 e 0, tutto ok, riesco da arduino con serial.write(), su vb.net leggo con un Serial1.ReadChar() e facendo anche le prove, tutto va bene. io vorrei che oltre ad individuare il problema, arduino mi dicesse quale laser è rotto. ma, quando con serial.wite() o serial.print() invio dei caratteri (esempio: A1) e visual basic mi indica che si è rotto il laser "65" cioè la "A" in decimale, saltando quindi anche l'1, ma questo credo sia un problema di vb.net perchè sono quasi certo di sbagliare comando, devo provare ad usare Serial1.ReadLine() (proverò domani, qui non ho gli strumenti)..... questo è un riassunto. La domanda è, Secondo voi sbaglio qualcosa anche nel comando da Arduino?? Non va bene serial.write() per le stringhe? ho letto dal link inviato da Gugliemo (la pagina di doc su Serial) che write() invia anche stringhe.....boooo.....

... ma non t'è caduto l'occhio sulla Serial.print() e la Serial.println() ? ;)

Guglielmo