Componenti della shield multifunzione Keyestudio KS0183

🎯 Dal collegamento al programma

Con un circuito tradizionale, prima di programmare occorre predisporre sensori, resistenze e collegamenti. Con questa shield i componenti integrati sono già collegati a pin prestabiliti di Arduino.

Possiamo quindi concentrarci sulla logica: leggere un sensore, riconoscere la pressione di un pulsante, prendere una decisione e comandare una luce o un suono.

💡 La shield non sostituisce Arduino: è una scheda di espansione. Il programma viene eseguito dal microcontrollore della scheda Arduino su cui è montata.

🔌 Montaggio e compatibilità

Preparare la scheda prima dell’esperimento.

Keyestudio indica la compatibilità con Arduino UNO R3 e Arduino Mega 2560. Il montaggio diretto su UNO permette di ottenere una postazione compatta, comoda per il laboratorio.

  1. Scollega il cavo USB e le eventuali alimentazioni esterne.
  2. Allinea tutti i terminali della shield ai connettori di Arduino.
  3. Controlla che nessun terminale sia piegato o spostato di una posizione.
  4. Inserisci la shield delicatamente, esercitando una pressione uniforme.
  5. Collega Arduino al computer con un cavo USB dati.
  6. Seleziona in ZZBlocks la scheda effettivamente utilizzata.
⚠️ Inserisci e rimuovi la shield a scheda spenta. Non collegarla direttamente a ESP32: disposizione dei connettori e livelli elettrici richiedono una verifica specifica.

🗺️ La mappa dei collegamenti

Ogni componente ha un pin già assegnato.

L’immagine seguente mostra i collegamenti interni. Le sigle D identificano i pin digitali; le sigle A gli ingressi analogici.

Schema dei pin della Keyestudio KS0183: pulsanti, sensori, LED, buzzer e connettori

🔍 Clicca sull’immagine per aprirla in una nuova scheda e ingrandire le indicazioni.


📋 Componenti e pin

Un riferimento rapido durante la programmazione.

Componente Pin Utilizzo
🔘 Pulsante SW1 D2 Ingresso digitale.
🔘 Pulsante SW2 D3 Ingresso digitale.
🌡️ DHT11 D4 Temperatura e umidità relativa.
🔊 Buzzer passivo D5 Generazione di suoni.
📡 Ricevitore infrarosso D6 Ricezione di comandi da telecomando.
🔴 LED RGB: rosso D9 Controllo del canale rosso.
🟢 LED RGB: verde D10 Controllo del canale verde.
🔵 LED RGB: blu D11 Controllo del canale blu.
🔴 LED rosso, Led4 D12 Segnalazioni luminose.
🔵 LED blu, Led3 D13 Segnalazioni luminose.
🎚️ Potenziometro A0 Ingresso analogico regolabile.
☀️ Fotoresistenza A1 Rilevamento della luminosità.
🌡️ LM35 A2 Misura analogica della temperatura.
🔄 Pulsante RESET RESET Riavvio del programma.
⚠️ I pin sono già occupati dai componenti indicati. Un connettore accessibile non rende automaticamente libero il relativo pin. Evita di collegare dispositivi esterni che interferiscano con quelli integrati.

🔘 Pulsanti e segnali digitali

Interagire con il programma.

I pulsanti SW1 su D2 e SW2 su D3 permettono di inserire comandi: avviare una sequenza, cambiare modalità oppure aumentare e diminuire un valore.

Prima di costruire un contatore, verifica lo stato letto a pulsante premuto e rilasciato. Controllare continuamente un pulsante non equivale a contare una sola pressione: una pressione prolungata può essere letta molte volte.

  • 🚦 Usa un pulsante per avviare una segnalazione.
  • 🔢 Costruisci un contatore di pressioni.
  • 🔁 Cambia modalità con i due pulsanti.
💡 Una pressione, un evento: per contare correttamente occorre riconoscere il passaggio da rilasciato a premuto e gestire gli eventuali rimbalzi del contatto.

💡 LED e colori

Visualizzare stati e risultati.

Il LED rosso su D12 e quello blu su D13 permettono di creare lampeggi, sequenze e indicatori di stato.

Il LED RGB combina tre canali: rosso su D9, verde su D10 e blu su D11. Su Arduino UNO questi pin consentono anche la regolazione PWM, utile per variare l’intensità e mescolare i colori.

  • ⏱️ Crea sequenze con tempi differenti.
  • 🎨 Associa un colore a ogni modalità.
  • 🌡️ Cambia segnalazione in base alla temperatura.
💡 Segnali comprensibili a tutti: accompagna i colori con testi, suoni o ritmi di lampeggio differenti, così l’informazione non dipende soltanto dalla percezione del colore.

🎚️ Potenziometro e luce

Esplorare gli ingressi analogici.

Il potenziometro su A0 permette di modificare manualmente un valore. La fotoresistenza su A1 produce una lettura che varia con l’illuminazione.

Nella lettura analogica standard di Arduino UNO i valori vanno da 0 a 1023. Possiamo trasformarli in percentuali oppure usarli per regolare una durata o un’intensità.

  • 🎚️ Regola la velocità di lampeggio con la manopola.
  • 🔊 Modifica la frequenza di un suono.
  • 🌙 Accendi una segnalazione quando diminuisce la luce.
  • 📈 Osserva sul grafico le variazioni delle letture.
⚠️ La lettura della fotoresistenza non è una misura in lux. Per impostare una soglia, rileva prima i valori nelle condizioni reali dell’esperimento.

🌡️ Temperatura e umidità

Confrontare due sensori differenti.

Il DHT11 su D4 restituisce temperatura e umidità relativa attraverso una comunicazione digitale. Il LM35 su A2 fornisce invece una tensione analogica legata alla temperatura.

La presenza dei due sensori permette di confrontare misure dello stesso ambiente e discutere differenze, stabilità e tempi di risposta. Per l’LM35, una lettura analogica grezza deve essere convertita prima in tensione e poi in temperatura, usando il riferimento corretto.

  • 📋 Registra le due temperature in una tabella.
  • 💧 Osserva l’umidità relativa fornita dal DHT11.
  • 📊 Confronta misure raccolte nel tempo.
💡 Misure confrontabili: lascia stabilizzare i sensori, evita di toccarli durante la lettura e considera il calore prodotto dalla scheda. Per iniziare, distanzia le letture del DHT11 di circa due secondi.

🔊 Suoni e telecomando

Uscite sonore e comandi a distanza.

Il buzzer passivo su D5 richiede un segnale variabile per produrre un tono. Cambiando frequenza e durata possiamo costruire avvisi e brevi melodie.

Il ricevitore infrarosso su D6 permette di ricevere i comandi di un telecomando compatibile. Prima di associare un’azione a un tasto, occorre rilevare il codice che quel telecomando trasmette.

  • 🎵 Produci un suono alla pressione di un pulsante.
  • 🚨 Attiva un avviso al superamento di una soglia.
  • 📡 Cambia il colore del LED con il telecomando.
⚠️ Verifica le combinazioni: generazione dei toni, ricezione infrarossa e PWM possono utilizzare risorse temporali della scheda. La compatibilità dipende dalle librerie e dall’implementazione utilizzate. Prova prima ogni funzione separatamente.

➕ Connettori di espansione

Estendere gli esperimenti con moduli esterni.

Connettore Segnali Possibile impiego
Digitale D7 D7, VCC, GND Modulo digitale esterno.
Digitale D8 D8, VCC, GND Modulo digitale esterno.
Analogico A3 A3, VCC, GND Sensore analogico esterno.
I²C SDA, SCL, VCC, GND Display o sensori I²C compatibili.
Seriale TTL TX, RX, VCC, GND Modulo con comunicazione seriale compatibile.

Per utilizzare queste espansioni sono necessari i collegamenti del modulo esterno. Il vantaggio dell’assenza di fili riguarda i componenti già integrati sulla shield.

⚠️ Controlla sigle e tensioni: non tutti i dispositivi esterni accettano alimentazione o segnali a 5 V. Segui le scritte accanto ai connettori, senza dedurre l’ordine dei pin dal colore dei fili.
🔌 Seriale su Arduino UNO: i pin D0/RX e D1/TX sono condivisi con la comunicazione USB. Un modulo collegato può interferire con il caricamento o con il monitor seriale.

🧩 Usarla con ZZBlocks

Blocchi dedicati già disponibili.

In ZZBlocks sono già presenti blocchi dedicati alla shield KS0183. Permettono di lavorare sui componenti integrati attraverso comandi a blocchi, riducendo la necessità di scrivere direttamente codice.

  1. Seleziona la scheda Arduino utilizzata.
  2. Cerca i blocchi dedicati alla KS0183.
  3. Predisponi nel Setup le inizializzazioni richieste.
  4. Nel Loop, inserisci letture, condizioni e comandi.
  5. Usa il monitor seriale per controllare i valori e capire il comportamento del programma.
  6. Verifica e carica il progetto sulla scheda.
💡 Un componente alla volta: inizia da un LED o da un sensore. Dopo aver verificato il funzionamento, combina più blocchi nello stesso progetto. La tabella dei pin resta un riferimento utile anche quando utilizzi i blocchi dedicati.

🧪 Percorso di esperimenti

Dalle prime prove a un sistema interattivo.

  1. 💡 Lampeggio controllato: accendi e spegni un LED, poi modifica la durata delle pause.
  2. 🔘 Comando a pulsante: usa SW1 per attivare una segnalazione e SW2 per disattivarla.
  3. 🎚️ Regolatore: trasforma la lettura del potenziometro nella durata del lampeggio.
  4. 🌙 Sensore crepuscolare: rileva la luce e attiva un LED sotto una soglia scelta sperimentalmente.
  5. 🌡️ Monitor ambientale: mostra temperatura e umidità sul monitor seriale.
  6. 🚨 Allarme con soglia: confronta una lettura con un limite e produci un avviso luminoso o sonoro.
  7. 📡 Controllo a distanza: associa alcuni tasti del telecomando a modalità differenti.
🧠 Prima prevedi, poi verifica: scrivi quale comportamento ti aspetti, prova il programma e confronta il risultato. Se qualcosa cambia, modifica una sola parte alla volta.

🛠️ Se qualcosa non funziona

Controlli utili prima di modificare il progetto.

  • 🔌 La scheda non risponde: controlla cavo USB, porta e scheda selezionata.
  • 🧩 Un componente non funziona: verifica il pin nella tabella e le inizializzazioni richieste.
  • 🔢 Il contatore aumenta troppo: verifica che il programma conti una pressione, anziché tutte le letture durante la pressione.
  • 🌡️ La temperatura non è plausibile: controlla sensore, unità e conversione; una lettura analogica grezza non è già in °C.
  • ☀️ La soglia della luce non funziona: osserva prima i valori reali nel monitor seriale.
  • 📡 Il telecomando non viene riconosciuto: controlla batteria, orientamento, protocollo e codici ricevuti.
  • 🔄 Premendo RESET il programma riparte: è il comportamento previsto; RESET non è un normale pulsante programmabile.

📚 Documentazione

Guide e risorse ufficiali Keyestudio.

💡 Esempi del produttore: possono riferirsi a versioni precedenti delle librerie Arduino. Con ZZBlocks utilizza i blocchi e gli strumenti previsti dalla versione del programma installata.