Nota

Ciao, benvenuto nella Community Facebook di SunFounder dedicata agli appassionati di Raspberry Pi, Arduino ed ESP32! Approfondisci il mondo di Raspberry Pi, Arduino ed ESP32 insieme ad altri maker come te.

Perché unirsi?

  • Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche grazie all’aiuto della nostra community e del nostro team.

  • Impara e Condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.

  • Anteprime Esclusive: Ottieni l’accesso anticipato agli annunci dei nuovi prodotti e alle anteprime.

  • Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni e Giveaway Festivi: Partecipa a concorsi e promozioni durante le festività.

👉 Pronto a esplorare e creare con noi? Clicca su [qui] e unisciti oggi stesso!

Lezione 29: Modulo Semaforo LED

In questa lezione imparerai a utilizzare Arduino per controllare un mini semaforo a LED. Vedremo come programmare Arduino Uno per alternare i LED verde, giallo e rosso, simulando il funzionamento di un vero semaforo. Questo progetto è ideale per i principianti, poiché offre un’esperienza pratica nella programmazione di sequenze luminose e nel controllo dei tempi.

Componenti Necessari

Per questo progetto sono richiesti i seguenti componenti.

È sicuramente comodo acquistare un kit completo. Ecco il link:

Nome

COMPONENTI NEL KIT

LINK

Universal Maker Sensor Kit

94

Universal Maker Sensor Kit

Puoi anche acquistare i componenti separatamente dai link seguenti.

Descrizione del Componente

Link Acquisto

Arduino UNO R3 o R4

ACQUISTA

Modulo Semaforo

ACQUISTA

Collegamenti

../_images/Lesson_29_traffic_light_circuit_uno_bb.png

Codice

Analisi del Codice

  1. Prima di ogni operazione, definiamo delle costanti per i pin a cui sono collegati i LED. Questo rende il codice più leggibile e facile da modificare.

const int rledPin = 9;  // rosso
const int yledPin = 8;  // giallo
const int gledPin = 7;  // verde
  1. Qui specifichiamo le modalità dei pin LED. Tutti sono impostati su OUTPUT perché devono inviare tensione.

void setup() {
  pinMode(rledPin, OUTPUT);
  pinMode(yledPin, OUTPUT);
  pinMode(gledPin, OUTPUT);
}
  1. Qui viene implementata la logica del ciclo semaforico. La sequenza delle operazioni è la seguente:

    • Accende il LED verde per 5 secondi.

    • Fa lampeggiare il LED giallo tre volte (ogni lampeggio dura 0,5 secondi).

    • Accende il LED rosso per 5 secondi.

void loop() {
  digitalWrite(gledPin, HIGH);
  delay(5000);
  digitalWrite(gledPin, LOW);

  digitalWrite(yledPin, HIGH);
  delay(500);
  digitalWrite(yledPin, LOW);
  delay(500);
  digitalWrite(yledPin, HIGH);
  delay(500);
  digitalWrite(yledPin, LOW);
  delay(500);
  digitalWrite(yledPin, HIGH);
  delay(500);
  digitalWrite(yledPin, LOW);
  delay(500);

  digitalWrite(rledPin, HIGH);
  delay(5000);
  digitalWrite(rledPin, LOW);
}