Seguimi su Youtubue
Iscriviti
Se desideri, puoi effettuare un'iscrizione gratuita al forum per entrare nella nostra community.
Ricerca Avanzata
Pubblicità Google AdSense
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
I postatori più attivi del mese
Poderak
 
Ilfalco78
 
Lorenzo lollo
 

Come creare due semafori azionati da un pulsante (circuito e codice) con Arduino

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso

Come creare due semafori azionati da un pulsante (circuito e codice) con Arduino

Messaggio Da Poderak il Sab Nov 22, 2014 5:59 pm


In questo tutorial andremo a vedere come realizzare due semafori con Arduino che avranno la funzione principale di gestire il traffico di due corsie opposte in un incrocio. Una particolarità di questo progetto è che se lo colleghiamo alla corrente, il semaforo non sarà subito operativo ma i due LED gialli lampeggeranno finché l'utente non deciderà di azionare i semafori.

In che modo verranno azionati questi semafori? I semafori verranno azionati da un pulsante posizionato sulla basetta (breadboard). Ora che abbiamo capito a grandi linee il funzionamento del circuito che andremo a realizzare, vediamo il materiale necessario per fare questo circuito:

  • Arduino.
  • Da 6 ai 10 fili.
  • Una basetta (breadboard).
  • Un pulsante.
  • Sei LED (preferibilmente due rossi, due gialli e due verdi).
  • Tre resistenze che vanno da 400 Ohm a 1kOhm.
  • Una resistenza da 10kOhm.


Per prima cosa dovremo posizionare i sei led. Per comodità è consigliato mettere il catodo (la parte più corta del LED) nel "-" della nostra breadboard mentre l'anodo (la parte più lunga del LED) lo posizioniamo nella seconda parte della breadboard, come rappresentato in figura:
Nel modo in cui l'ho rappresentato in figura è in modo tale che riuscite a capire in che modo bisogna inserire i LED. Io vi consiglio, dato che si tratta di realizzare due semafori, di rendere il tutto più compatto come nell'immagine iniziale di questo tutorial.

Una volta posizionati i LED, colleghiamoli tramite le tre resistenze che vanno da 400 Ohm a 1kOhm in modo da avere la seconda e la terza parte della basetta collegata. Fatto ciò, posizioniamo dove più preferiamo il pulsante al centro della breadboard, colleghiamo i fili e la relativa resistenza come in figura:
Fatto ciò colleghiamo il tutto ad Arduino, ricordandoci di inserire il filo 5V e GND, e l'unica cosa che dovremo fare e la realizzazione del codice in modo da regolare in che modo devono lavorare i due semafori.


Il codice per fare funzionare il tutto è il seguente:
Codice:

int ledr1= 5;
int ledg1= 6;
int ledv1= 7;
int ledr2= 4;
int ledg2= 3;
int ledv2= 2;
int pulsante= 8;
int val = 0;
int stato = 0;


void setup() {
  pinMode(ledr1, OUTPUT);
  pinMode(ledg1, OUTPUT);
  pinMode(ledv1, OUTPUT);
  pinMode(ledr2, OUTPUT);
  pinMode(ledg2, OUTPUT);
  pinMode(ledv2, OUTPUT);
  pinMode(pulsante, INPUT);
  
}


void loop() {
  val = digitalRead(pulsante);
  if (val == HIGH) {
  stato = 1 - stato;
  }
    
    
  if (stato == 1) {  
  digitalWrite(ledr1, HIGH);
  digitalWrite(ledv2, HIGH);
  delay(5000);
  digitalWrite(ledv2, LOW);
  delay(1);
  digitalWrite(ledg2, HIGH);
  delay(2000);
  digitalWrite(ledg2, LOW);
  delay(1);
  digitalWrite(ledr1, LOW);
  delay(1);
  digitalWrite(ledr2, HIGH);
  digitalWrite(ledv1, HIGH);
  delay(5000);
  digitalWrite(ledv1, LOW);
  delay(1);
  digitalWrite(ledg1, HIGH);
  delay(2000);
  digitalWrite(ledg1, LOW);
  delay(1);
  digitalWrite(ledr2, LOW);
  delay(1);
  }
  else
  {
  digitalWrite(ledg1, HIGH);
  digitalWrite(ledg2, HIGH);
  delay(1000);              
  digitalWrite(ledg1, LOW);
  digitalWrite(ledg2, LOW);
  delay(1000);
  }
 }


Una volta fatto questo, abbiamo il nostro semaforo pronto! Possiamo vedere una dimostrazione sia tramite video e sia tramite un software online:

 

avatar
Poderak
♔ Amministratore

Messaggi Messaggi : 4147
Crediti Crediti : 11648
Reputazione Reputazione : 185
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

Vedere il profilo dell'utente http://www.wikiinfo.net

Tornare in alto Andare in basso

Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto


 
Permesso di questo forum:
Non puoi rispondere agli argomenti in questo forum