Ciao a tutti
Vorrei far leggere alla UNO come ingresso digitale il pin “STATE” del modulo bluetooth HC-05.
Dato che dal pin escono 3,3 V ho pensato di usare Level Shifter 3.3V to 5V .
Vorrei chiedere se la soluzione è corretta e se è possibile sostituire i transitor 2N2222 con BC337.
Grazie 1000
Guido
ilguargua:
Se con l'Arduino leggi e basta non ti serve il level shifter, l'uscita a 3,3 V verrà comunque letta come 1.
Purtroppo NON è affatto detto ...
... ad esempio i pin 0 ed 1 della seriale sono molto più sordi e, nel 90% dei casi NON funziona. Se leggi con una SoftwareSerial da altri pin, normalmente va, ma, causa tolleranze, NON è comunque garantito.
Con i nuovi Arduino basati poi su ATmega4809 NON va proprio in nessun caso dato che il livello HIGH è più alto (ne ho già parlato in altri thread).
Per quanto riguarda il convertitore di livello, è sufficiente il primo transistor con le prime due resistenze (che vanno benissimo anche da 10kOhm) o addirittura solo quella di base, attivando poi il pullup sull'ingresso, salvo il fatto che il livello logico sarà invertito.
Per avere una conversione di livelli bidirezionale si usa un mosfet: Conversione di livelli
... ad esempio i pin 0 ed 1 della seriale sono molto più sordi e, nel 90% dei casi NON funziona.
E molto probabilmente c'è anche il suo perché, visto che sono già collegati ad altra roba. Poi se devi leggere un ingresso esterno 0 e 1 meglio lasciarli perdere a prescindere...
Con i nuovi Arduino basati poi su ATmega4809 NON va proprio in nessun caso dato che il livello HIGH è più alto
... lo so . La mia era una indicazione specifica per mettere sempre in guardia su queste "facili" compatibilità di livelli che, in realtà, sono tutt'altro che scontate