Stap 10: Code
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#include "pitches.h"
/ * De volgende wordt gecontroleerd met een afstandssensor HC-SR04 of er is
een object tussen 2m en 25cm. Als er een object tussen 2m en 1 en een half
meter de twee groene leds zijn gewijzigd van laag naar hoog. Als er een object
tussen 1 gaan 50m en 50cm de groene en de gele LDS hoog. Als er
een object tussen 50cm en 25cm alle de leds zullen hoog. En ten slotte als
Er is een object dichter tot 25cm die alle de LED's knipperen.
Circuit: één HC-SR04 Sensor
twee groene leds, twee gele leds, twee rode leds met een weerstand van 220Ω gekoppeld aan
elke één van hen
een zoemer met een weerstand
draden!!! */
int gren = 2;
int groen = 3;
int geel = 4;
int yellow1 = 5;
int rood = 8;
int red1 = 9;
int trig = 7; //triger pin van de sensor
int echo = 6; //echo pin van de sensor
int maximumrange = 200; //the maximale bereik dat wij willen dat de sensor voor het meten van
int minimumrange = 25; //minimum bereik dat wij willen dat de sensor voor het meten van
int redRange = 50;
int yellowRange = 150;
int spreker = 10;
int melodie [] {} =
NOTE_C4, NOTE_C4, NOTE_C4, NOTE_C4, 0};
int noteDurations [] {} =
1,2,4,8,64};
lange duur, afstand;
VOID Setup {}
Serial.begin(9600);
pinMode(echo,INPUT);
pinMode(trig,OUTPUT);
pinMode(green,OUTPUT);
pinMode(gren,OUTPUT);
pinMode(yellow,OUTPUT);
pinMode(yellow1,OUTPUT);
pinMode(red,OUTPUT);
pinMode(red1,OUTPUT);
pinMode(speaker,OUTPUT);
}
void loop {}
Wij signaal uit de triger pin en het nemen van het signaal met de
ECHO pin
digitalWrite(trig,LOW);
delayMicroseconds(2);
digitalWrite(trig,HIGH);
delayMicroseconds(10);
digitalWrite(trig,LOW);
duration=pulseIn(ECHO,High);
We berekenen van de afstand
afstand = duur/58.2;
Als (afstand < = minimumrange) {//minimum=25cm
Limit();
}
anders als (afstand < = redRange & & afstand > = minimumrange) {}
redLimit (); //red=50 minimale = 25
}
/ * Als de afstand kleiner of gelijk aan 1,50 m en groter of gelijk aan 25cm is
Doe de fowlloings * /
anders als (afstand < = yellowRange & & afstand > = redRange) {}
yellowLimit (); //yellow=150cm rood = 50 cm
}
anders als (afstand < = maximumrange & & afstand > = yellowRange) {}
greenLimit();
}
anders if(distance > maximumrange) {}
melodie [4];
noteDurations [4];
}
}
VOID limit() {//limit= 25cm uit een object
Serial.println();
Serial.Print ("aandacht!!! U bent: ");
Serial.Print(distance);
Serial.Print ("cm dicht bij een object");
digitalWrite(green,HIGH);
digitalWrite(gren,HIGH);
digitalWrite(yellow,HIGH);
digitalWrite(yellow1,HIGH);
digitalWrite(red,HIGH);
digitalWrite(red1,HIGH);
vertraging(20);
digitalWrite(green,LOW);
digitalWrite(gren,LOW);
digitalWrite(yellow,LOW);
digitalWrite(yellow1,LOW);
digitalWrite(red,LOW);
digitalWrite(red1,LOW);
voor het berekenen van de duur van de opmerking, neem één seconde
gedeeld door het type opmerking.
bijvoorbeeld kwartnoot = 1000 / 4, achtste noot = 1000/8, enz.
int noteDuration = 1000/noteDurations [3];
Toon (speaker, melody[3],noteDuration);
om te onderscheiden van de notities, stel een minimuminterval tussen hen.
de nota's duur + 30% schijnt goed te werken:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
Stop het afspelen van de Toon:
noTone(speaker);
}
ongeldig redLimit() {}
Serial.println();
Serial.Print ("carefull!! U bent: ");
Serial.Print(distance);
Serial.Print ("cm dicht bij een object");
digitalWrite(green,HIGH);
digitalWrite(gren,HIGH);
digitalWrite(yellow,HIGH);
digitalWrite(yellow1,HIGH);
digitalWrite(red,HIGH);
digitalWrite(red1,HIGH);
voor het berekenen van de duur van de opmerking, neem één seconde
gedeeld door het type opmerking.
bijvoorbeeld kwartnoot = 1000 / 4, achtste noot = 1000/8, enz.
int noteDuration = 1000/noteDurations [2];
Toon (speaker, melody[2],noteDuration);
om te onderscheiden van de notities, stel een minimuminterval tussen hen.
de nota's duur + 30% schijnt goed te werken:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
Stop het afspelen van de Toon:
noTone(speaker);
}
ongeldig yellowLimit() {}
Serial.println();
Serial.Print ("je bent:");
Serial.Print(distance);
Serial.Print ("cm dicht bij een object");
digitalWrite(red,LOW);
digitalWrite(red1,LOW);
digitalWrite(green,HIGH);
digitalWrite(gren,HIGH);
digitalWrite(yellow,HIGH);
digitalWrite(yellow1,HIGH);
voor het berekenen van de duur van de opmerking, neem één seconde
gedeeld door het type opmerking.
bijvoorbeeld kwartnoot = 1000 / 4, achtste noot = 1000/8, enz.
int noteDuration = 1000/noteDurations [1];
Toon (speaker, melody[1],noteDuration);
om te onderscheiden van de notities, stel een minimuminterval tussen hen.
de nota's duur + 30% schijnt goed te werken:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
Stop het afspelen van de Toon:
noTone(speaker);
}
ongeldig greenLimit() {}
Serial.println();
Serial.Print ("er is een object:");
Serial.Print(distance);
Serial.Print ("cm dicht");
digitalWrite(yellow,LOW);
digitalWrite(yellow1,LOW);
digitalWrite(red,LOW);
digitalWrite(red1,LOW);
digitalWrite(green,HIGH);
digitalWrite(gren,HIGH);
voor het berekenen van de duur van de opmerking, neem één seconde
gedeeld door het type opmerking.
bijvoorbeeld kwartnoot = 1000 / 4, achtste noot = 1000/8, enz.
int noteDuration = 1000/noteDurations [0];
Toon (speaker, melody[0],noteDuration);
om te onderscheiden van de notities, stel een minimuminterval tussen hen.
de nota's duur + 30% schijnt goed te werken:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
Stop het afspelen van de Toon:
noTone(speaker);
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Er is één extra tab die u hebt om pitch.h te noemen en de plaatsen die u uw zoemer wilt te spelen zal omvatten. In mijn code ik heb; alleen NOTE_C4
#define NOTE_C4 262
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Dus eigenlijk is wat deze code doet de afstand meten en controleren van bepaalde voorwaarden wordt voldaan. Als de afstand kleiner is dan Xcm het ademen de groene grens, als de afstand kleiner is dan de gele e.t.c. Xcm