Skip to content

Instantly share code, notes, and snippets.

@clive520
Created June 3, 2018 14:47
Show Gist options
  • Save clive520/38d5a58c9a6555ac0cb6d34a7ceef68d to your computer and use it in GitHub Desktop.
Save clive520/38d5a58c9a6555ac0cb6d34a7ceef68d to your computer and use it in GitHub Desktop.
搖桿控制車子
//搖桿控制車子
//L9110 A-1A=>Pin11 A-1B=>pin10 B-1A=>pin5 B-1B=>pin6
//搖桿 VRX=>A0 VRY=>A1
// LCD接線 GND==>GND VCC==>5V SDA==>A4 SCL==>A5
#include <Wire.h>
#include <motoLiquidCrystal_I2C.h>
LiquidCrystal_I2C mylcd(0x27,16,2);
void right() { //副程式 右轉
analogWrite(5,255);
analogWrite(6,0);
analogWrite(10,0);
analogWrite(11,255);
}
void stop() { //副程式 停止
analogWrite(5,0);
analogWrite(6,0);
analogWrite(10,0);
analogWrite(11,0);
}
void left() { //副程式 左轉
analogWrite(5,0);
analogWrite(6,255);
analogWrite(10,255);
analogWrite(11,0);
}
void backward() { //副程式 後退
analogWrite(5,0);
analogWrite(6,255);
analogWrite(10,0);
analogWrite(11,255);
}
void forward() { //副程式 前進
analogWrite(5,255);
analogWrite(6,0);
analogWrite(10,255);
analogWrite(11,0);
}
void setup()
{
mylcd.init();
mylcd.backlight();
pinMode(A0, INPUT);
pinMode(A1, INPUT);
mylcd.backlight();
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
void loop()
{
mylcd.setCursor(0,0);
mylcd.print(analogRead(A0));
if (analogRead(A0) > 800 && (analogRead(A1) <= 800 && analogRead(A1) >= 200)) {
forward();
} else if (analogRead(A0) < 200 && (analogRead(A1) <= 800 && analogRead(A1) >= 200)) {
backward();
} else if (analogRead(A1) < 200 && (analogRead(A0) <= 800 && analogRead(A0) >= 200)) {
left();
} else if (analogRead(A1) > 800 && (analogRead(A0) <= 800 && analogRead(A0) >= 200)) {
right();
} else {
stop();
}
mylcd.setCursor(0,1);
mylcd.print(analogRead(A1));
delay(100);
mylcd.clear();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment