Recensisci!
Diventa un recensore per ricevere prodotti gratuiti o scontati!
Iscriviti
Se desideri, puoi effettuare un'iscrizione gratuita al forum per entrare nella nostra community.
Ricerca Avanzata
Pubblicità Adsense
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
I postatori più attivi del mese
Admin
 
daltanius29877
 
decos
 
Answers
 

Realizzare sirena v4.0 con potenziometro, clacson e display LCD - Arduino

Andare in basso

Realizzare sirena v4.0 con potenziometro, clacson e display LCD - Arduino

Messaggio Da Admin il Ven Nov 13, 2015 5:13 pm


Il progetto è costituito da un display LCD 16x2, un pulsante per il clacson, un potenziometro per impostare la sirena e ovviamente i suoi relativi led per l'illuminazione. Per quanto riguarda il circuito, essendo "molto concentrato" di fili, vi verrà mostrando come realizzarlo man mano, componente dopo componente. In seguito avremo:
- Come montare il display LCD in Arduino:
Se volete potete consultare anche questo schema per capire come montare il vostro display:

Per quanto riguarda il resto (led, altoparlante, clacson), potete seguire il seguente tutorial in cui viene spiegato come montare il circuito mancante e il software:

La sirena v4.0 è un'evoluzione della sirena v3.0! Per quanto riguarda il software rimane praticamente uguale (con qualche risoluzione a bug) ma viene integrato per fare in modo che ci sia un display LCD a mostrarci tutte le relative modalità. In seguito viene mostrato il codice utilizzato per la sirena v4.0 (dovete semplicemente adattare i PIN con quelli che avete impostato voi nel vostro circuito).
Codice:

/* Titolo: Sirena Arduino v4.0
 * Autore: Poderak
 * Sito: www.youtube.com/MartinoLutero
 */
#include <LiquidCrystal.h>
int tono=7; //Sostituire con PIN dell'altoparlante
int puls=6; //Sostituire con PIN pulsante del clacson
int ledg=10; //Sostituire con PIN del led blu
int ledr=8; //Sostituire con PIN del led rosso
int ledb=9; //Sostituire con PIN led bianco (abbagliante)
int val=0;
int potl=A0; //Sostituire con PIN del potenziometro
int pot=0;
int ciclo=0;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Sostituire se hai usato altri PIN rispetto allo schema

void setup() {
  pinMode(ledg, OUTPUT);
  pinMode(ledr, OUTPUT);
  pinMode(ledb, OUTPUT);
  pinMode(tono, OUTPUT);
  pinMode(potl, INPUT);
  pinMode(puls, INPUT);
  Serial.begin(9600);
  lcd.begin(16, 2);  
  lcd.print("");
}

void loop() {
  val = digitalRead(puls);
  pot = analogRead(potl);
  

  if (val==0) {
  lcd.setCursor(1,0);
  lcd.print("Modalita' n.:     ");  
   if(pot>=0&&pot<=310) {
  lcd.setCursor(0, 1);  
  lcd.print("1 - Sirena off  ");
  noTone(tono);
  digitalWrite(ledg, LOW);
  digitalWrite(ledr, LOW);
  digitalWrite(ledb, LOW);
  }
  
  if(pot>=311&&pot<=500) {
  lcd.setCursor(0,1);
  lcd.print("2 - Solo luci   ");
    noTone(tono);
  digitalWrite(ledg, HIGH);
  digitalWrite(ledr, LOW);
  delay(200);
  digitalWrite(ledg, LOW);
  digitalWrite(ledr, HIGH);
    delay(200);
  digitalWrite(ledb, LOW);
  }  
  
   if(pot>=501&&pot<=700)
  {
    lcd.setCursor(0,1);
  lcd.print("3 - Luci e suono");
  tone(tono, 550, 800);
  digitalWrite(ledg, HIGH);
  digitalWrite(ledr, LOW);
  delay(800);
  noTone(tono);
  tone(tono, 750, 800);
  digitalWrite(ledg, LOW);
  digitalWrite(ledr, HIGH);
  delay(800);
  noTone(tono);
  digitalWrite(ledb, LOW);
  }

  if(pot>=701&&pot<=960)
  {
        lcd.setCursor(0,1);
  lcd.print("4 - Velocita' x2");
  tone(tono, 550, 200);
  digitalWrite(ledg, HIGH);
  digitalWrite(ledr, LOW);
  delay(200);
  noTone(tono);
  tone(tono, 750, 200);
  digitalWrite(ledg, LOW);
  digitalWrite(ledr, HIGH);
  delay(200);
  noTone(tono);
  digitalWrite(ledb, LOW);  
  }
  
  if(pot>=961&&pot<=1023)
  {
  lcd.setCursor(0,1);
  lcd.print("5 - Automatico  ");
    digitalWrite(ledb, LOW);
  for (ciclo=0; ciclo<=3; ciclo++) {
  tone(tono, 550, 800);
  digitalWrite(ledg, HIGH);
  digitalWrite(ledr, LOW);
  delay(350);
  noTone(tono);
  tone(tono, 750, 800);
  digitalWrite(ledg, LOW);
  digitalWrite(ledr, HIGH);
  delay(350);
  noTone(tono);
  }
  
  digitalWrite(ledb, HIGH);
  tone(tono, 150);
  digitalWrite(ledg, HIGH);
  digitalWrite(ledr, LOW);
  delay(350);
   digitalWrite(ledg, LOW);
  digitalWrite(ledr, HIGH);
  delay(350);
  digitalWrite(ledb, LOW);
  }
  
  }
  
  
  if (val==1) {
  lcd.setCursor(1,0);
  lcd.print("Modalita' n.: *");
  tone(tono, 150);
  digitalWrite(ledb, HIGH);
  digitalWrite(ledg, HIGH);
  digitalWrite(ledr, LOW);
  delay(200);
   digitalWrite(ledg, LOW);
  digitalWrite(ledr, HIGH);
  delay(200);
  }
  
  

  
}
avatar
Admin
♔ Amministratore

Messaggi Messaggi : 4282
Crediti Crediti : 11939
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 19
Località Località : Brescia

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

Tornare in alto Andare in basso

Tornare in alto


 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum