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).
Ultimi argomenti
» TOP 5 oggetti che perdi spesso
Da Poderak Gio Lug 13, 2017 4:26 pm

» arduino e ethernet shield tutorial 3
Da mariogori Ven Lug 07, 2017 8:52 pm

» Arduino comandato da cellulare
Da Poderak Ven Lug 07, 2017 6:17 pm

» Simulatore di navi: Traino nave in avaria - European Ship Simulator
Da Poderak Sab Lug 01, 2017 1:16 pm

» arduino e ethernet shield tutorial 3
Da Poderak Gio Giu 29, 2017 8:05 pm

» Farming Simulator 2018 logo
Da Poderak Ven Giu 23, 2017 3:29 pm

» Codice display a 7 segmenti - Arduino
Da fulvio Ven Giu 02, 2017 10:00 am

» DUE SKETCH INSIEME? SI PUO' FARE?
Da Alessandro2003 Mer Mag 31, 2017 6:37 pm

» Smartphone sotto i 70€ economico: Winnovo K43
Da Poderak Mar Mag 30, 2017 10:32 am

I postatori più attivi del mese
Poderak
 
mariogori
 
andrea0099
 

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

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

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

Messaggio Da Poderak 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
Poderak
♔ Amministratore

Messaggi Messaggi : 4196
Crediti Crediti : 11726
Reputazione Reputazione : 186
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

Vedi 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


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