Rutan interaktiva Donation (9 / 12 steg)
Steg 9: Ladda upp koden
Nu, ladda upp koden i filen ino nedan till din arduino. Måste du ställa in rätt styrelse och seriell port i din IDE innan uppladdning.
< p > #include < Servo.h >< br > Servo myServo; < /p >< p > const int pingPin = 6;
CONST int redPin = 9;
CONST int grnPin = 10;
CONST int bluPin = 11. < /p >< p > void setup()
{
pinMode (redPin, produktionen);
pinMode (grnPin, produktionen);
pinMode (bluPin, produktionen);
myServo.attach(3);
myServo.write(100);
} < /p >< p > void loop()
{< /p >< p >
While(true)
{
lång varaktighet, tum, cm;
pinMode (pingPin, produktionen);
digitalWrite (pingPin, låg);
delayMicroseconds(2);
digitalWrite (pingPin, hög);
delayMicroseconds(5);
digitalWrite (pingPin, låg);
pinMode (pingPin, ingång);
längd = pulseIn (pingPin, hög);
cm = microsecondsToCentimeters(duration);
om (cm < = 4 & & cm > = 1)
{bryta;}
redtoyellow();
pinMode (pingPin, produktionen);
digitalWrite (pingPin, låg);
delayMicroseconds(2);
digitalWrite (pingPin, hög);
delayMicroseconds(5);
digitalWrite (pingPin, låg);
pinMode (pingPin, ingång);
längd = pulseIn (pingPin, hög);
cm = microsecondsToCentimeters(duration);
om (cm < = 4 & & cm > = 1)
{bryta;}
yellowtogreen();
pinMode (pingPin, produktionen);
digitalWrite (pingPin, låg);
delayMicroseconds(2);
digitalWrite (pingPin, hög);
delayMicroseconds(5);
digitalWrite (pingPin, låg);
pinMode (pingPin, ingång);
längd = pulseIn (pingPin, hög);
cm = microsecondsToCentimeters(duration);
om (cm < = 4 & & cm > = 1)
{bryta;}
greentocyan();
pinMode (pingPin, produktionen);
digitalWrite (pingPin, låg);
delayMicroseconds(2);
digitalWrite (pingPin, hög);
delayMicroseconds(5);
digitalWrite (pingPin, låg);
pinMode (pingPin, ingång);
längd = pulseIn (pingPin, hög);
cm = microsecondsToCentimeters(duration);
om (cm < = 4 & & cm > = 1)
{bryta;}
cyantoblue();
pinMode (pingPin, produktionen);
digitalWrite (pingPin, låg);
delayMicroseconds(2);
digitalWrite (pingPin, hög);
delayMicroseconds(5);
digitalWrite (pingPin, låg);
pinMode (pingPin, ingång);
längd = pulseIn (pingPin, hög);
cm = microsecondsToCentimeters(duration);
om (cm < = 4 & & cm > = 1)
{bryta;}
bluetomagenta();
pinMode (pingPin, produktionen);
digitalWrite (pingPin, låg);
delayMicroseconds(2);
digitalWrite (pingPin, hög);
delayMicroseconds(5);
digitalWrite (pingPin, låg);
pinMode (pingPin, ingång);
längd = pulseIn (pingPin, hög);
cm = microsecondsToCentimeters(duration);
om (cm < = 4 & & cm > = 1)
{bryta;}
magentatored();
}
myServo.write(130);
Delay(500);
myServo.write(70);
Delay(500);
myServo.write(130);
Delay(500);
myServo.write(70);
Delay(500);
myServo.write(130);
Delay(500);
myServo.write(100);
Delay(500); < /p >< p >} < /p >< p > lång dist()
{
lång varaktighet;
pinMode (pingPin, produktionen);
digitalWrite (pingPin, låg);
delayMicroseconds(2);
digitalWrite (pingPin, hög);
delayMicroseconds(5);
digitalWrite (pingPin, låg);
pinMode (pingPin, ingång);
längd = pulseIn (pingPin, hög);
returnera varaktighet / 29 / 2;
} < /p >< p > void redtoyellow()
{
digitalWrite (redPin, låg);
digitalWrite (bluPin, hög);
för (byte jag = 1; jag < 50; i ++) {
byte på = i.
byte av = 100-på;
för (byte en = 0; en < 100; a ++) {
digitalWrite (grnPin, låg);
delayMicroseconds(on);
digitalWrite(grnPin,HIGH);
delayMicroseconds(off);
}
}
} < /p >< p > void yellowtogreen()
{
digitalWrite (grnPin, låg);
digitalWrite(bluPin,HIGH);
för (byte jag = 1; jag < 50; i ++) {
byte på = 100-i.
byte av = i.
för (byte en = 0; en < 100; a ++) {
digitalWrite (redPin, låg);
delayMicroseconds(on);
digitalWrite (redPin, hög);
delayMicroseconds(off);
}
}
} < /p >< p > void greentocyan()
{
digitalWrite (grnPin, låg);
digitalWrite (redPin, hög);
för (byte jag = 1; jag < 50; i ++) {
byte på = i.
byte av = 100-på;
för (byte en = 0; en < 100; a ++) {
digitalWrite (bluPin, låg);
delayMicroseconds(on);
digitalWrite (bluPin, hög);
delayMicroseconds(off);
}
}
} < /p >< p > void cyantoblue()
{
digitalWrite (bluPin, låg);
digitalWrite (redPin, hög);
för (byte jag = 1; jag < 50; i ++) {
byte på = 100-i.
byte av = i.
för (byte en = 0; en < 100; a ++) {
digitalWrite (grnPin, låg);
delayMicroseconds(on);
digitalWrite(grnPin,HIGH);
delayMicroseconds(off);
}
}
} < /p >< p > void bluetomagenta()
{
digitalWrite (bluPin, låg);
digitalWrite(grnPin,HIGH);
för (byte jag = 1; jag < 50; i ++) {
byte på = i.
byte av = 100-på;
för (byte en = 0; en < 100; a ++) {
digitalWrite (redPin, låg);
delayMicroseconds(on);
digitalWrite (redPin, hög);
delayMicroseconds(off);
}
}
} < /p >< p > void magentatored()
{
digitalWrite(redPin,LOW);
digitalWrite (grnPin, hög); < /p >< p > för (byte jag = 1; jag < 50; i ++) {
byte på = 100-i.
byte av = i.
för (byte en = 0; en < 100; a ++) {
digitalWrite (bluPin, låg);
delayMicroseconds(on);
digitalWrite (bluPin, hög);
delayMicroseconds(off);
}
}
} < /p >< p > lång microsecondsToCentimeters(long microseconds)
{
återvända mikrosekunder / 29 / 2;
} < /p >