Afgelopen tijd niet stil gezeten.
Inmiddels heb ik al een tijdje een Mega R3 2560 en een I2C 4x20lcd
Om makkelijk te kunnen testen heb ik wat losse encoder-pots gekocht zodat ik de code kan testen zonder de hele installatie op te bouwen.
Op internet (via youtube filmpje) een code gevonden die de pulsen leest, telt en via de serial monitor zichtbaar maakt.
Ook het LCD schermpje heb ik al aan de gang mbv wan een "Hello World" sketch.
Ik kan de code goed lezen en begrijpen maar schrijven is toch nog moeilijk.
Ik heb de Encoder sketch dusdanig aangepast dat deze ook het display opstart met een welkoms tekst en vervolgens een soort van template op het scherm zet.
Het lukt me alleen nog niet om de waarde die op de serial monitor wordt geprint ook op het scherm te krijgen.
Wellicht kan iemand me helpen?
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
int pulses, A_SIG=0, B_SIG=1;
void setup()
{
{
attachInterrupt(0, A_RISE, RISING);
attachInterrupt(1, B_RISE, RISING);
Serial.begin(115200);
lcd.begin(20,4);
}
{
// ------- 3x knipperen backlight -------------
for(int i = 0; i< 3; i++)
{
lcd.backlight();
delay(500);
lcd.noBacklight();
delay(500);
}
lcd.backlight();
//-------- Welkomst boodschap ------------------
lcd.setCursor(0,0);
lcd.print("");
lcd.setCursor(0,1);
lcd.print("* ");
lcd.setCursor(0,2);
lcd.print(" *");
lcd.setCursor(0,3);
lcd.print("");
delay(500);
lcd.setCursor(4,1);
lcd.print("Sjuul's DRO");
lcd.setCursor(2,2);
lcd.print("Mini Mill ZX7016");
delay(3000);
//-------- Template ------------------
lcd.clear();
lcd.setCursor(0,0);
lcd.print("X: mm ");
delay(500);
lcd.setCursor(0,1);
lcd.print("Y: mm ");
delay(500);
lcd.setCursor(0,2);
lcd.print("Z: mm ");
delay(500);
lcd.setCursor(0,3);
lcd.print("n: RPM");
}
} //einde setup
void loop(){
}
void A_RISE(){
detachInterrupt(0);
A_SIG=1;
if(B_SIG==0)
pulses++;//moving forward
if(B_SIG==1)
pulses--;//moving reverse
Serial.println(pulses);
attachInterrupt(0, A_FALL, FALLING);
}
void A_FALL(){
detachInterrupt(0);
A_SIG=0;
if(B_SIG==1)
pulses++;//moving forward
if(B_SIG==0)
pulses--;//moving reverse
Serial.println(pulses);
attachInterrupt(0, A_RISE, RISING);
}
void B_RISE(){
detachInterrupt(1);
B_SIG=1;
if(A_SIG==1)
pulses++;//moving forward
if(A_SIG==0)
pulses--;//moving reverse
Serial.println(pulses);
attachInterrupt(1, B_FALL, FALLING);
}
void B_FALL(){
detachInterrupt(1);
B_SIG=0;
if(A_SIG==0)
pulses++;//moving forward
if(A_SIG==1)
pulses--;//moving reverse
Serial.println(pulses);
attachInterrupt(1, B_RISE, RISING);
}
Alvast bedankt,
dit is het filmpje waar ik de code van heb