Arduino Joystick ile I2C LCD Ekranda Hareket

Arduino Joystick & I2C LCD Kullanımı konulu yazımı LCD ekranda hareket haline getirdim. Ekrandaki X karakteri sol-sağ, 1.satır-2.satır gezintisi yapıyor. 



KOD


#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C  lcd(0x27,2,1,0,4,5,6,7);

int xPin = A0;                    // joystick vry pin
int yPin = A1;                    // joystick vrx pin
int joyButonPin = 2;              // joystick sw  pin

int xPos = 0;
int yPos = 0;
int joyButonDurum = 0;
int kolon=7;                      // cursor pos
int satir=0;                        // cursor pos

void setup() {
lcd.begin(16, 2);
    lcd.setBacklightPin(3,POSITIVE);
  lcd.setBacklight(HIGH);

pinMode(xPin, INPUT);
pinMode(yPin, INPUT);
pinMode(joyButonPin, INPUT_PULLUP);
 lcd.setCursor(kolon, satir);
lcd.print("X");


void loop() {

xPos = analogRead(xPin);
yPos = analogRead(yPin);
joyButonDurum = digitalRead(joyButonPin);

serialEkran();
i2c_LCD();

delay(100);
}

void serialEkran(){ 
Serial.print("X : ");
Serial.print(xPos);
Serial.print(" | Y : ");
Serial.print(yPos);
Serial.print(" | Buton Durum: ");
Serial.println(joyButonDurum);
  }

  void i2c_LCD(){
 
if(xPos>800) {kolon=kolon+1;}
if(xPos<200) {kolon=kolon-1;}
if(kolon>16) kolon=16;
if (kolon<0) kolon=0;

if(yPos>800) {satir=0;lcd.setCursor(kolon+1, satir-1); lcd.print("   ");}
if(yPos<200) {satir=1;lcd.setCursor(kolon-1, satir-1); lcd.print("   ");}

if (joyButonDurum==0){lcd.setCursor(kolon, satir);lcd.print("-X-");delay(200);}
lcd.setCursor(kolon, satir);
lcd.print(" X ");

  }


KULLANILAN PROGRAMLAYICI: Arduino 1.8.10

Yorumlar