goedenavond heren.
Ben op het moment bezig met het programmeren van een motor. Deze moet een bepaalde tijd een bepaalde snelheid kunnen draaien. Nu heb ik een display 128x32 i2c. Hier heb ik nu het volgende staan:
Rotary tumbler
Snelheid; 0 % <
Tijd; 0 Minuten <
Nu heb ik er ook een potmeter en een button op aangesloten. Met de potmeter kan ik dan de snelheid of tijd wijzigen. En met de button kan ik selecteren wat ik wil wijzigen (snelheid of tijd). De selectie moet dan weergegeven worden op het display door achter tijd of snelheid een "<" te zetten. Nu heb ik het probleem dat bij beide regels een "<"staat.
Wat doe ik fout en hoe kan ik ervoor zorgen dat ik dit goed krijg?
Dit is mijn eerste keer met i2c displays op arduino.
de code is als volgt:
code:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
int Motorpin = 3; //pwmpin
int Potmeter = A1;
int motorspeed = 0;
int tijd = 0;
int button = 2;
int buttonstate = HIGH;
int reading;
int previous = LOW;
long time = 0; // the last time the output pin was toggled
long debounce = 200; // the debounce time, increase if the output flickers
void setup()
{
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
pinMode(Potmeter, INPUT);
pinMode(button, INPUT);
pinMode(Motorpin, OUTPUT);
}
void loop()
{
reading = digitalRead(button);
// if the input just went from LOW and HIGH and we've waited long enough
// to ignore any noise on the circuit, toggle the output pin and remember
// the time
if (reading == HIGH && previous == LOW && millis() - time > debounce)
{
if (buttonstate == HIGH)
buttonstate = LOW;
else
buttonstate = HIGH;
time = millis();
}
previous = reading;
if (buttonstate == HIGH);
{
display.setCursor(122,10);
display.println("<");
}
if (buttonstate == LOW);
{
display.setCursor(122,20);
display.println("<");
}
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("Rotary tumbler");
display.setCursor(0,10);
display.println("Snelheid :");
display.setCursor(0,20);
display.println("Tijd :");
display.setCursor(60,10);
display.println(motorspeed);
display.setCursor(60,20);
display.println(tijd);
display.setCursor(80,10);
display.println("%");
display.setCursor(80,20);
display.println("Minuten");
display.display();
}
(zie foto voor display)