Multiplexer analogico con Arduino e CD4051 -

Поделиться
HTML-код
  • Опубликовано: 20 июл 2024
  • In questo video vedremo come aggiungere un multiplexer (MUX) analogico ad Arduino per aumentare i suoi ingressi analogici.
    Sorgenti, schemi e slide:
    github.com/zmaker/arduino_coo...
    Indice dei video:
    www.zeppelinmaker.it/arduino100/
    Puoi scaricare gratuitamente i miei libri:
    "Il manuale di Arduino - gumroad.com/l/arduino
    "Il cookbook di Arduino": gumroad.com/l/arduinocookbook
    Altre informazioni e libri sul mio sito: www.zeppelinmaker.it
    I sorgenti su github:
    github.com/zmaker/arduino_coo...

Комментарии • 15

  • @luigi_com
    @luigi_com 5 лет назад +1

    Paolo, ma anche qualche video (ovviamente in futuro) che riguarda il tuo lavoro come riparatore non sarebbe male. Ogni tanto racconti qualche piccolo trucco e li ho trovati sempre interessanti.
    Ormai sei un appuntamento fisso giornaliero :)

    • @zeppelinmaker
      @zeppelinmaker  5 лет назад

      Ciao! Sicuramente si. Ne ho pubblicato qualcuno alcuni mesi fa, ma sarebbe interessante approfondire...

  • @FurtherReading
    @FurtherReading 5 лет назад

    Buongiorno +paolo aliverti ! Grazie per questa nuova guida ! Molto interessante per un inesperto come me, alle prese con l'elettronica ! Ho studiato il MUX in un ottimo corso “From NAND to Tetris” (suddiviso in 2 parti), gratuito, sulla piattaforma di MOOC Coursera: lo consiglio alla grande a tutti gli appassionati della materia ! Si parte dal NAND, poi si sviluppano chip sempre più complessi, passando per AND, XOR, MUX, DEMUX, BIT, REGISTRI, RAM...e poi CPU, Assembler...e qui finisce il primo corso; il secondo riparte da lì, per poi sviluppare Compilatore, Linguaggio di programmazione, OS ed infine il Tetris ! Ogni volta si sviluppa su quanto già implementato, quindi la sensazione, procedendo nel corso, è davvero piacevole ! Ho completato solo la prima parte, ma prima o poi farò anche il secondo corso ! Comunque il primo è stato fantastico, per me che non ne sapevo praticamente nulla, venendo dal mondo della programmazione (autodidatta) ! Il tutto viene sviluppato con del software fornito gratuitamente durante il corso, ed i vari chip si implementano in HDL, quindi non ci sono componenti hardware.
    Tornando al tuo video qui, giusto una brevissima puntualizzazione: a 5:50 dici che un int è memorizzato in 16 bit (2 byte). Siccome sono abituato al linguaggio C, dove, per la maggior parte dei compilatori e sui moderni processori e sistemi operativi (la dimensione di un tipo di variabile dipende da una combinazione di 3 aspetti, dunque), int è memorizzato in 4 byte, ho dato un'occhiata alla documentazione di Arduino:

    Integers are your primary data-type for number storage.
    On the Arduino *Uno* (and other ATmega based boards) an int stores a 16-bit (2-byte) value. This yields a range of -32,768 to 32,767 (minimum value of -2^15 and a maximum value of (2^15) - 1). On the Arduino *Due* and SAMD based boards (like MKR1000 and Zero), an int stores a 32-bit (4-byte) value. This yields a range of -2,147,483,648 to 2,147,483,647 (minimum value of -2^31 and a maximum value of (2^31) - 1).

    Ho pensato di aggiungere questo dettaglio come commento al tuo già ottimo lavoro, +paolo aliverti, con modestia e desiderio di contribuire ai tuoi grandi sforzi di divulgazione (sei un grande per me, come ti ho già scritto!): vedo che usi un Arduino UNO nel video, dunque quello che dici è corretto, ma potrebbe portare chi utilizza un altro tipo di scheda a conclusioni errate, in caso di altri codici. D'altronde, per quanto riguarda il codice che sviluppi in questo video, non ci sarebbero comunque problemi (credo), in quanto prendi soltanto i 3 bit più a destra della variabile int i, ma volevo aggiungere questo commento, dato che ormai ho fatto una piccola ricerca sulla documentazione e varie considerazioni. Addirittura, sarebbe forse più formalmente corretto e meno suscettibile a vulnerabilità usare un unsigned int.
    Curiosità: magari questa è una domanda banale, per chi è esperto in materia, ma, ora che rifletto, ho letto in vari post che il chip di Arduino UNO è a 8 bit: come fa dunque a gestire variabili da 2 byte (16 bit) ? Lo fa via software, suddividendo i dati in pacchetti da 8 bit ? Via hardware ? Qualcuno ne sa qualcosa ?
    Grazie ancora per le tue ottime guide 💾

    • @zeppelinmaker
      @zeppelinmaker  5 лет назад

      Grazie a te per il dettagliatissimo commento e le precisazioni che saranno utili a tutti. Credo di aver spiegato il fatto che su alcuni "Arduini" int vale 4 piuttosto che 2 in un video precedente. Son tanti ormai! Sulla formazione degli int a 16 bit mi informo.

    • @FurtherReading
      @FurtherReading 5 лет назад +1

      @@zeppelinmaker mi era sfuggito il vecchio video, in quanto non seguo il canale da tanto tempo, a differenza delle tue pubblicazioni ! Grazie !

    • @FurtherReading
      @FurtherReading 5 лет назад

      @@alfa-psi grazie mille per la spiegazione !

    • @FurtherReading
      @FurtherReading 5 лет назад

      alfa-psi grazie !
      Eccolo qua: www.coursera.org/learn/build-a-computer
      Fammi sapere se lo segui, così ne parliamo assieme, se ti va ! Scrivimi via Skype a paolovag o su Twitter @p_vag !
      Grazie 🙏🏼

  • @massimilianoforte5342
    @massimilianoforte5342 2 года назад

    semplice ed efficace

  • @federicozorzi4238
    @federicozorzi4238 4 года назад

    Cia Paolo, grazie per i tuoi video. Volevo chiederti questo: Ho provato a collegare due 4051 in modalità MUX in parallelo, mettendo in comune A,B e C e collegare i due ingressi in A0 e A1. Nel for quando leggo i canali dai due integrati, ottengo valori "sballati". I canali del primo integrato per esempio restituiscono due valori, uno per i canali pari e uno per i canali dispari... ti è mai capitato? Grazie

  • @chihauccisoilconte4474
    @chihauccisoilconte4474 4 года назад

    Ciao, grazie per il tutorial ho una domanda: è possibile leggere simultaneamente più input attraverso il MUX?

  • @devilvortex1
    @devilvortex1 4 года назад

    Che differenza c'è tra multiplexer e demultiplexer?

  • @fabriziolograsso752
    @fabriziolograsso752 4 года назад

    ciao è possibile accendere 2 o più led conteporaneamente o si può selezionare un canale alla volta?

    • @zeppelinmaker
      @zeppelinmaker  4 года назад +1

      no, mi pare (a memoria) che puoi attivare un solo canale per volta. Per quello puoi usare degli shift register

  • @G12Sish
    @G12Sish 4 года назад

    Ciao, sto imparando a conoscere MUX e DEMUX con un CD74HC4067 (è economico e il datasheet, ha un numero di pagine che non intimidisce).
    Mi sono reso conto che per la maggior parte delle mie applicazioni sarebbe più comodo, un demux digitale che mantenga alto o basso il segnale in uscita senza un costante segnale in entrata, per esempio:
    faccio la prima scansione su 4 uscite e le imposto
    1 = high
    2 = high
    3 = low
    4 = high
    poi rimanendo sul pin 4 continuo a comandarlo, mentre i pin 1, 2, 3 mantengono gli stati impostati fino a nuovo comando sugli stessi.
    Che tu sappia esiste qualcosa del genere? E se esiste come si chiama?

    • @zeppelinmaker
      @zeppelinmaker  4 года назад

      ciao. credo che ti serva un registro a scorrimanto con ingressi di tipo latch... significa che se arriva un segnale, lo memorizzano fino a che non lo leggi. Cerca in playlist i video su registri sincroni e asincroni...