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
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
I postatori più attivi del mese
Bawoo
 

Metro digitale con Arduino v1.0

Andare in basso

Metro digitale con Arduino v1.0

Messaggio Da Admin il Dom Lug 17, 2016 8:03 pm


In questa guida vi spiegherò come realizzare un metro digitale con Arduino. Per realizzare questo progetto abbiamo bisogno dei seguenti componenti:
- Arduino Uno: http://amzn.to/29Gg83H
- Display LCD con I2C: http://amzn.to/2a8nfpU
- Sensore ultrasuoni: http://amzn.to/29NG2lQ
- Fili e breadboard: http://amzn.to/29ENX99

Per capire i collegamenti, vi consiglio di andare a vedere i tutorial dei singoli componenti. In seguito trovate i link che fanno riferimento a ciascun componente:
- Display LCD 16x2 con interfaccia I2C.
- Sensore ultrasuoni.

In seguito trovate lo sketch commentato che potrete utilizzare per realizzare il vostro metro digitale:
Codice:

#include <Wire.h> //librerie necessarie per interfaccia i2c
#include <LiquidCrystal_I2C.h>

//////////////////////addr, en,rw,rs,d4,d5,d6,d7,bl, blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //impostazione indirizzo del display e pin del display LCD collegati all'i2c

int triggerPort = 8; //pin del sensore ultrasuoni
int echoPort = 7;
long durata; //variabili per contenere le misurazioni
long distanza;

void setup() {
  pinMode(triggerPort, OUTPUT); //imposto il trigger come output
  pinMode(echoPort, INPUT); //imposto l'echo come input
  lcd.begin(16,2); //inizializzo il display
  Serial.begin(9600); //inizializzo il serial monito
  lcd.setCursor(0,0); //scritta all'avvio di arduino
  lcd.print(" Metro Digitale ");
  lcd.setCursor(0,1);
  lcd.print("  Poderak v1.0  ");
  delay(1000);
}

void loop() {
  digitalWrite(triggerPort, LOW); //invio suono
  digitalWrite(triggerPort, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPort, LOW);
  
  durata=pulseIn( echoPort, HIGH ); //calcolo della durata
  Serial.println(durata); //stampo la durata sul serial monitor
  distanza=0.034*durata/2; //formula per avere la distanza in cm
  lcd.clear();
  if( durata == 0){ //condizione: limite fuori portata
  lcd.setCursor(0, 0);
  lcd.println("LIMITE RAGGIUNTO");
  lcd.setCursor(0, 1);
  lcd.println("Fuori portata.  ");
  }
  else {
  lcd.setCursor(0,0); //imposta il cursore nella prima riga e colonna  
  lcd.print("Misurazione: "); //stampo la misurazione
  lcd.setCursor(0,1);
  lcd.print(distanza);
  lcd.print("cm");
}
delay(1000);
}
avatar
Admin
♔ Amministratore

Messaggi Messaggi : 4343
Crediti Crediti : 12114
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 20
Località Località : Brescia

Visualizza il profilo http://wikiinfo.forumattivo.it

Torna in alto Andare in basso

Torna in alto


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