Paso 2: De código
Código de
En de códigos wordt básica gemaakt van extra libery. Zonder deze zal het lcd scherm niet werken en zullen de ultrasone sensoren een stuk minder nauwkeurig zijn.
Sensor de código voor de ultrasone:
#define echoPin 13
#define trigPin 12
#include
NewPing sonar (12, 13, 200);
void setup()
{
pinMode (trigPin, salida);
pinMode (echoPin, entrada);
Serial.Begin(9600);
}
void loop() {}
int duración, distancia;
digitalWrite (trigPin, LOW);
delayMicroseconds(2);
digitalWrite (trigPin, HIGH);
delayMicroseconds(10);
digitalWrite (trigPin, LOW);
duración = pulseIn (echoPin, HIGH);
distancia = (duración / 2) / 29,1;
Serial.println(Distance);
retrasar (1000);
}
Código voor het scherm lcd:
#include
#include / / bibliotheek voor lcd
Lcd de LiquidCrystal_I2C (0x27, 2, 1, 0, 4, 5, 6, 7, 3, positivo);
void setup()
{
Serial.Begin(9600);
LCD.Begin (16, 2);
para (int i = 0; i < 3; i ++);
{
LCD.Backlight();
Delay(250);
lcd.noBacklight();
Delay(250);
}
}
void loop() {}
LCD.Backlight();
lcd.setCursor (0, 0);
LCD.Print ("wereld Halo: P"); hacer es onjuist maar wordt wel op lcd geprint
}
Código voor de drukknoppen:
#define drukknop1 13
#define drukknop2 12
#define drukknop3 8
int buttonState = 0;
int buttonState2 = 0;
int buttonState3 = 0;
void setup()
{
pinMode (drukknop1, entrada);
pinMode (drukknop2, entrada);
pinMode (drukknop3, entrada);
Serial.Begin(9600);
}
void loop() {}
buttonState = digitalRead(drukknop1);
buttonState2 = digitalRead(drukknop2);
buttonState3 = digitalRead(drukknop3);
else if (buttonState == HIGH) {}
Serial.println ("button1 ingedrukt");
}
else if (buttonState2 == HIGH) {}
Serial.println ("button2 ingedrukt");
}
else if (buttonState2 == HIGH) {}
Serial.println ("button3 ingedrukt");
}
retrasar (1000);
}
Láser en código voor de:
void setup()
{
pinMode (13, salida);
}
void loop()
{
digitalWrite (13, HIGH);
Delay(10000);
digitalWrite (13, bajo);
Delay(2000);
}
TOTALE de código:
#define drukknop1 52
#define drukknop2 53
#define drukknop3 51
#define láser 50
#define echoPin 48
#define trigPin 49
#define echoPin2 26
#define trigPin2 27
vanaf hier alleen voor arduino mega
#define echoPin3 22
#define trigPin3 23
#define echoPin4 24
#define trigPin4 25
/////
#define I2C_ADDR 0x27 / / definir dirección I2C para el PCF8574A
#define BACKLIGHT_PIN 3
#define En_pin 2
#define y 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
#define LED_OFF 0
#define LED_ON 1
#include / / nieuwe bibliotheek toegevoegd voor betere ping
#include
#include / / bibliotheek voor lcd
Lcd de LiquidCrystal_I2C (I2C_ADDR, En_pin, y, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);
NewPing sonar (49, 48, 400);
NewPing sonar1 (27, 26, 400);
NewPing sonar2 (23, 22, 400);
NewPing sonar3 (25, 24, 400);
int buttonState = 0;
int buttonState2 = 0;
int buttonState3 = 0;
void setup()
{
pinMode (drukknop1, entrada);
pinMode (drukknop2, entrada);
pinMode (drukknop3, entrada);
Serial.Begin(9600);
/////////
pinMode (láser, salida);
Serial.Begin (9600);
pinMode (trigPin, salida);
pinMode (echoPin, entrada);
pinMode (trigPin2, salida);
pinMode (echoPin2, entrada);
pinMode (trigPin3, salida);
pinMode (echoPin3, entrada);
pinMode (trigPin4, salida);
pinMode (echoPin4, entrada);
lcd.setBacklightPin (BACKLIGHT_PIN, positivos);
lcd.setBacklight(HIGH);
Serial.Begin(9600);
LCD.Begin (16, 2);
para (int i = 0; i < 3; i ++);
{
LCD.Backlight();
Delay(250);
lcd.noBacklight();
Delay(250);
}
}
void loop() {}
larga duración, distancia, duration2, distancia2., entre, duración3, distance3, duration4, distance4, between2, oppervlakte, oppervlakte2;
Ultrasone 1
digitalWrite (trigPin, LOW);
delayMicroseconds(2);
digitalWrite (trigPin, HIGH);
delayMicroseconds(10);
digitalWrite (trigPin, LOW);
duración = pulseIn (echoPin, HIGH);
distancia = (duración / 2) / 29,1;
Ultrasone 2
digitalWrite (trigPin2, bajo);
delayMicroseconds(2);
digitalWrite (trigPin2, HIGH);
delayMicroseconds(10);
digitalWrite (trigPin2, bajo);
duration2 = pulseIn (echoPin2, HIGH);
distancia2. = (duration2 / 2) / 29,1;
entre = distancia distancia2. + 18; hacer tussen us1 en us2
Ultrasone 3
digitalWrite (trigPin3, bajo);
delayMicroseconds(2);
digitalWrite (trigPin3, HIGH);
delayMicroseconds(10);
digitalWrite (trigPin3, bajo);
duración3 = pulseIn (echoPin3, HIGH);
distance3 = (duración3 / 2) / 29,1;
Ultrasone 4
digitalWrite (trigPin4, bajo);
delayMicroseconds(2);
digitalWrite (trigPin4, HIGH);
delayMicroseconds(10);
digitalWrite (trigPin4, bajo);
Duration4 = pulseIn (echoPin4, HIGH);
distance4 = (duration4 / 2) / 29,1;
between2 = distance3 + distance4 + 18; tussen de hacer nosotros 3 en nosotros 4
oppervlakte = (entre * between2);
oppervlakte2 = (oppervlakte / 10000);
////
buttonState = digitalRead(drukknop1);
buttonState2 = digitalRead(drukknop2);
buttonState3 = digitalRead(drukknop3);
Si (buttonState == HIGH) {}
digitalWrite (láser, alta);
Serial.println(Distance);
LCD.Backlight();
lcd.setCursor (0, 0);
LCD.Print(Distance);
Delay(100);
LCD.Print ("cm");
Delay(100);
}
else if (buttonState2 == HIGH) {}
Serial.println (entre);
LCD.Backlight();
lcd.setCursor (0, 0);
LCD.Print(between);
Delay(100);
LCD.Print ("cm");
Delay(100);
}
else if (buttonState3 == HIGH) {}
Serial.println (oppervlakte2);
Delay(1000);
LCD.Backlight();
lcd.setCursor (0, 0);
LCD.Print (oppervlakte2);
Delay(100);
LCD.Print ("m2");
Delay(100);
}
Else {}
Serial.println ("maak een keuze");
LCD.Backlight();
lcd.setCursor (0, 0);
LCD.Print ("maak een keuze");
digitalWrite (láser, LOW);
Delay(1000);
}
}