Dag beste forumkijkertjes,
Kunnen jullie mij helpen? Ik krijg de foutcode invalid header file in tinkercad maar weet niet hoe ik dit probleem moet oplossen.
#include <Stepper.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
const int speeldrukknop = 12;
const int relayPin = 8;
const int IN1_driver1 = 3;
const int IN2_driver1 = 4;
const int IN3_driver1 = 5;
const int IN4_driver1 = 6;
const int IN1_driver2 = 8;
const int IN2_driver2 = 9;
const int IN3_driver2 = 10;
const int IN4_driver2 = 11;
Stepper driver1(stepsPerRevolution, IN1_driver1, IN2_driver1, IN3_driver1, IN4_driver1);
Stepper driver2(stepsPerRevolution, IN1_driver2, IN2_driver2, IN3_driver2, IN4_driver2);
LiquidCrystal_I2C lcd(0x27, 16, 2); // Address 0x27, 16 karakter display, 2 regels.
bool isPressed = false;
bool wasPressed = false;
bool isMoving = false;
bool isRelayOn = false;
void setup() {
Serial.begin(9600);
pinMode(speeldrukknop, INPUT);
pinMode(relayPin, OUTPUT);
lcd.init(); // Initialiseren LCD
lcd.backlight(); // Inschakelen LCD-achtergrondverlichting
}
void loop() {
isPressed = digitalRead(speeldrukknop);
if (isPressed && !wasPressed && !isMoving) { // Speeldrukknop is ingedrukt
isMoving = true;
digitalWrite(relayPin, HIGH); // Relais bekrachtigen
// Beweging elektromagneet naar startpositie
driver1.setSpeed(100); // Stel snelheid in
driver1.step(stepsToStart); // Beweeg in wijzerzin naar startpositie
// Beweeg de drivers willekeurig
randomMove(driver1);
randomMove(driver2);
}
if (!isPressed && wasPressed && isMoving) { // Speeldrukknop is losgelaten
// Beweging om boven draaiplaat te komen
driver1.setSpeed(100); // Stel snelheid in
driver1.step(stepsToAbovePlate); // Beweeg tegenwijzerzin om boven draaiplaat te komen
delay(1000); // Wacht 1 seconde
// Elektromagneet naar positie boven draaiplaat
digitalWrite(relayPin, LOW); // Relais uitschakelen
driver2.setSpeed(100); // Stel snelheid in
driver2.step(stepsToAbovePlate); // Beweeg tegenwijzerzin om boven draaiplaat te komen
delay(3000); // Wacht 3 seconden
// Kleurensensor lezen en waarde bijhouden
int kleurWaarde = leesKleurSensor();
lcd.setCursor(0, 0);
lcd.print("Kleur waarde: ");
lcd.print(kleurWaarde);
// Terug naar startpositie boven draaiplaat
digitalWrite(relayPin, HIGH); // Relais bekrachtigen
driver2.setSpeed(100); // Stel snelheid in
driver2.step(stepsToAbovePlate); // Beweeg in wijzerzin naar startpositie boven draaiplaat
delay(1000); // Wacht 1 seconde
// Elektromagneet naar positie boven opvangbakje
digitalWrite(relayPin, LOW); // Relais uitschakelen
driver1.setSpeed(100); // Stel snelheid in
driver1.step(stepsToAboveContainer); // Beweeg tegenwijzerzin naar opvangbakje
delay(1000); // Wacht 1 seconde
// Elektromagneet terug naar startpositie
digitalWrite(relayPin, HIGH); // Relais bekrachtigen
driver1.setSpeed(100); // Stel snelheid in
driver1.step(stepsToStart); // Beweeg in wijzerzin naar startpositie
isMoving = false;
}
wasPressed = isPressed;
}
void randomMove(Stepper stepper) {
int randSteps = random(50, 200); // Willekeurig aantal stappen tussen 50 en 200
bool isClockwise = random(2); // Willekeurige richting
if (isClockwise) {
stepper.setSpeed(100); // Stel snelheid in
stepper.step(randSteps); // Beweeg in wijzerzin
} else {
stepper.setSpeed(100); // Stel snelheid in
stepper.step(-randSteps); // Beweeg tegenwijzerzin
}
}
int leesKleurSensor() {
// Code om kleurensensor uit te lezen en waarde te retourneren
}