Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- #define trigger 35
- #define eCHo 33
- #define buzzer 31
- long distancia;
- int led[6] = {53, 51, 49, 47, 45, 43};
- int freq = 2573; /* essas frequencias são notas musicais específicas / these frequences are in musical notes*/
- int dlay[6] = {100, 150, 200, 250, 300, 350};
- LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
- void setup() {
- Serial.begin(9600);
- lcd.begin(16, 2);
- for(int i = 0; i < 6; i++){
- pinMode(led[i], OUTPUT);
- }
- pinMode(eCHo, INPUT);
- pinMode(trigger, OUTPUT);
- digitalWrite(trigger, LOW);
- digitalWrite(eCHo, LOW);
- }
- void loop() {
- delay(100);
- lcd.clear();
- lcd.print("Distancia: ");
- lcd.setCursor(0, 1);
- lcd.print(distanciar());
- lcd.print(" cm");
- if(distanciar() > 0 && distanciar() <= 10){
- ativarLeds(6, 0);
- }
- else if(distanciar() > 10 && distanciar() <= 20){
- ativarLeds(5, 1);
- }
- else if(distanciar() > 20 && distanciar() <= 30){
- ativarLeds(4, 2);
- }
- else if(distanciar() > 30 && distanciar() <= 40){
- ativarLeds(3, 3);
- }
- else if(distanciar() > 40 && distanciar() <= 50){
- ativarLeds(2, 4);
- }
- else{
- ativarLeds(1, 5);
- }
- }
- int distanciar(){
- digitalWrite(trigger, HIGH);
- delayMicroseconds(10);
- digitalWrite(trigger, LOW);
- distancia = pulseIn(eCHo, HIGH) * 0.0170145;
- return distancia;
- }
- void ativarLeds(int qntdLeds, int f){
- for(int i = 0; i < qntdLeds; i++){
- digitalWrite(led[i], HIGH);
- }
- for(int i = 5; i > qntdLeds - 1; i--){
- digitalWrite(led[i], LOW);
- }
- noTone(buzzer);
- delay(dlay[f]);
- tone(buzzer, freq);
- }
Add Comment
Please, Sign In to add comment