Lansera plattform för halm-raketer styrs av arduino (9 / 9 steg)
Steg 9: Koden för en plattform med en LCD-skärm
med detta använder du en LCD-skärm på rutan som ger dig oberoende från en dator
#include LiquidCrystal lcd (8, 9, 4, 5, 6, 7);
CONST int launchPIN = 2;
int redLED1 = 3; int redLED2 = 14. int redLED3 = 16. int blueLED = 15.
byte högtalare = 19. i stället för stift 4,5,6,9 har du 14,15,16,19
char flagga = 0; CONST int switchPin = 12;
int buttonState = 0, hoppa = 1; byte buttonflag = sant; lång starttid, längd;
void setup() {
Serial.BEGIN(9600);
pinMode(redLED1,OUTPUT);
pinMode(redLED2,OUTPUT);
pinMode(redLED3,OUTPUT);
pinMode(blueLED,OUTPUT);
pinMode(speaker,OUTPUT);
pinMode(17,OUTPUT); i stället för stift 7 har du 17
pinMode (launchPIN, ingång);
pinMode(switchPin,INPUT);
digitalWrite(switchPin,HIGH);
pinMode(13,OUTPUT);
LCD.BEGIN (16, 2); Starta biblioteket
lcd.setCursor(0,0);
LCD.Print ("flygtid");
}
void loop()
{
digitalWrite(13,HIGH);
buttonState = digitalRead(launchPIN);
om (buttonState == hög) {
om (flagga == 0)
{
Delay(1000);
blinkLED(redLED1,1000);
blinkLED(redLED2,1000);
blinkLED(redLED3,1000);
för (int j = 0; j < 6; j ++)
{
playTone(477,300);
digitalWrite(blueLED,HIGH);
Delay(100);
playTone(15289,300);
digitalWrite (blueLED, låg);
Delay(100);
}
digitalWrite(6,HIGH);
playTone(477,2000);
digitalWrite(6,LOW);
relayON();
startTime = millis();
Flagga = 1;
}
} annat
{flagga = 0;}
om (flagga == 1) {delay(300);count_down();}
relayOFF();
}
void blinkLED (int pin, int längd)
{
digitalWrite(pin,HIGH);
Delay(duration);
digitalWrite(pin,LOW);
Delay(duration);
}
void relayON()
{
digitalWrite(17,HIGH);
}
void relayOFF()
{
digitalWrite(17,LOW);
}
void playTone (int period, int audduration)
{
int puls = period /2;
för (länge jag = 0; jag
{
digitalWrite(speaker,HIGH);
delayMicroseconds(pulse);
digitalWrite(speaker,LOW);
delayMicroseconds(pulse);
}
}
void count_down() {
lcd.setCursor(5,1); flytta markören till andra raden "1" och 9 utrymmen över
om (hoppa == 1) {
LCD.Print(Millis()-StartTime-300); Display sekunder som förflutit sedan uppstart
}
lcd.setCursor(0,1); flytta till början av den andra raden
int timestate=digitalRead(switchPin);
om (timestate == 0)
{hoppa = 0;}
}