Stap 4: Mijn code
Zorg ervoor dat op te slaan en wat code u de arduino eerst kunt uploaden.
In het geval dat mijn codebestand onderaan werkt niet hier is:
[code]
/ * HC-SR04 Sensor (ultrasone)
https://www.DealExtreme.com/p/HC-sr04-Ultrasonic-...
Deze sketch leest een HC-SR04 ultrasone afstandsmeter en retourneert de afstand naar het dichtstbijzijnde object in bereik. Om dit te doen, het stuurt een puls naar de sensor te leiden van een lezing, dan luistert naar een puls om terug te keren. De lengte van de terugkerende puls is evenredig met de afstand van het object tot de sensor.
Het circuit:
* VCC aansluiting van de sensor in bijlage aan + 5V
* GND aansluiting van de sensor in bijlage op grond
* TRIG verbinding van de sensor gekoppeld aan digitale pin 2
* ECHO verbinding van de sensor gekoppeld aan digitale pin 4
Oorspronkelijke code voor Ping))) in het volgende voorbeeld is gemaakt door David A. Mellis aangepast voor HC-SR04 door Tautvidas Sipavicius deze voorbeeldcode in het publieke domein is. */
Const int trigPin = 2;
Const int echoPin = 4;
LEDs #include "FastLED.h"
Hoeveel leds in de strip?
#define NUM_LEDS 60
Voor led chips zoals Neopixels, die een data lijn, grond en macht hebben, je gewoon / / moet DATA_PIN definiëren. Voor led chipsets die SPI gebaseerd zijn (vier draden - gegevens, klok, / / gemalen, en macht), zoals de LPD8806 definiëren zowel DATA_PIN als CLOCK_PIN
#define DATA_PIN 3
#define CLOCK_PIN 13
Definiëren van de array voor de leds CRGB leds [NUM_LEDS];
VOID Setup {}
FastLED.addLeds (LED's, NUM_LEDS);
Ultrasoon sensor
seriële communicatiepoorten te initialiseren:
Serial.begin(9600); }
void loop {}
Ultrasoon sensor
stellen variabelen voor de duur van de ping,
en het resultaat van de afstand in inches en centimeters: lange duur, inch, cm;
De sensor wordt geactiveerd door een hoge pols van 10 of meer microseconden.
Geef een korte lage puls vooraf om een schoon hoog puls:
pinMode (trigPin, OUTPUT);
digitalWrite (trigPin, laag);
delayMicroseconds(2);
digitalWrite (trigPin, hoge);
delayMicroseconds(10);
digitalWrite (trigPin, laag);
Lees het signaal van de sensor: een hoge pulse waarvan
duur is de tijd (in microseconden) van de verzending
voor de ping naar de receptie van de echo off van een object.
pinMode (echoPin, INPUT);
duur = pulseIn (echoPin, hoge);
de tijd omzetten in een afstand
duim = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Serial.Print(inches);
Serial.Print ("in");
Serial.Print(cm);
Serial.Print("cm");
Serial.println();
delay(100);
LED 's
De LED inschakelen, dan onderbreken
Als (cm < = 60) {}
for (int i = 0; ik < 60; i ++) {}
LEDs [i] = CRGB::Red;
FastLED.show();
delay(50);
Nu de LED uitschakelen, dan onderbreken
LEDs [i] = CRGB::Black;
FastLED.show(); delay(50);
} }
anders als (cm > 60 & & cm < = 200) {}
De LED inschakelen, dan onderbreken
for (int i = 0; ik < 60; i ++) {}
LEDs [i] = CRGB::Red;
FastLED.show();
delay(100);
} }
else {}
for (int i = 0; ik < 60; i ++) {}
Nu de LED uitschakelen, dan onderbreken
LEDs [i] = CRGB::Black;
FastLED.show();
delay(100);
} }
}
lange microsecondsToInches(long microseconds) {}
Volgens de Parallax gegevensblad voor de PING))), er zijn
73.746 microseconden per inch (dwz geluid reist aan 1130 voeten per
seconde). Dit geeft de afstand die is afgelegd door de ping, uitgaande
en terug te keren, zodat wij door 2 delen te krijgen van de afstand van het obstakel.
Zie: http://www.parallax.com/dl/docs/prod/acc/28015-PI...
retourneren van microseconden / 74 / 2; }
lange microsecondsToCentimeters(long microseconds) {}
De snelheid van het geluid is 340 m/s of 29 microseconden per vierkante centimeter.
De ping reist uit en terug, zo vind je de afstand van de
we de helft van de afgelegde afstand nemen-object.
retourneren van microseconden / 29 / 2; }
[/ code]