要把x&y的控制放到一起,下面是我这几天带孩子玩写的摇杆控制小车的程序,摇杆是PS2摇杆,两个可调电阻,中位时测过输出约2.5V,ADC值约500上下,写程序时这段是停止,程序刚刚前3天左右时间在小车上跑过,驱动模块用的是298N,LCD是I2C 1602~啃萝卜不知道咋回事,粘不上程序,用WORD粘上来~

#include

#include

LiquidCrystal_I2C lcd(0x3f, 16, 2);

int potpin1 =A0;  //

int potpin2=A1;

int val1;    //

int vala;

int valb;

int M1 = 6;

int M2 = 7;

int M3 = 8;

int M4 = 9;

int EN1 = 10;

int EN2 = 11;

uint8_t M1Status=LOW;

uint8_t M2Status=LOW;

uint8_t M3Status=LOW;

uint8_t M4Status=LOW;

int en1=0;

int en2=0;

void setup()

{

lcd.init();

lcd.init();

lcd.backlight();

//lcd测试

lcd.setCursor(0, 0);

lcd.print("System starting!");

pinMode(M1, OUTPUT);

pinMode(M2, OUTPUT);

pinMode(M3, OUTPUT);

pinMode(M4, OUTPUT);

pinMode(EN1, OUTPUT);

pinMode(EN2, OUTPUT);

lcd.setCursor(0, 1);

lcd.print("test engine......");

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("Welcome!");

lcd.setCursor(0, 1);

lcd.print("Hello Sunny!");

}

void loop()

{

vala = analogRead(potpin1);

valb = analogRead(potpin2);

if (valb>=401 && valb<=599)

{

if(vala>599)

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(2, 1);

lcd.print("car forward!");

val1 = map(vala,600, 1023, 0, 255);

analogWrite(en1, val1);

analogWrite(en2, val1);

front();

delay(15);

}  // waits for the servo to get there

else if(vala<401)

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(1, 1);

lcd.print("car backward!");

val1 = map(vala,0, 400, 255, 0);

analogWrite(en1, val1);

analogWrite(en2, val1);

back();

delay(15);

}

else

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(3, 1);

lcd.print("car Stop!");

Stop();

delay(15);

}

}

else if(valb<400)

{

if(vala>599)

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(1, 1);

lcd.print("Turning left!");

val1 = map(vala,600, 1023, 0, 255);

analogWrite(en1, val1);

analogWrite(en2, val1);

left();

delay(15);

}

else if(vala<401)

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(1, 1);

lcd.print("car back&left!");

val1 = map(vala,0, 400, 255, 0);

analogWrite(en1, val1);

analogWrite(en2, val1);

right();

delay(15);

}

else

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(3, 1);

lcd.print("car Stop!");

Stop();

delay(15);

}

}

else

{

if(vala>599)

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(0, 1);

lcd.print("Turning right!");

val1 = map(vala,600, 1023, 0, 255);

analogWrite(en1, val1);

analogWrite(en2, val1);

right();

delay(15);

}

else if(vala<401)

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(0, 1);

lcd.print("car back&right!");

val1 = map(vala,0, 400, 255, 0);

analogWrite(en1, val1);

analogWrite(en2, val1);

left();

delay(15);

}

else

{

lcd.clear();

lcd.setCursor(0, 0);

lcd.print("4WD CAR TEST SYS");

lcd.setCursor(3, 1);

lcd.print("car Stop!");

Stop();

delay(15);

}

}

}

void front(void)

{

M1Status = LOW;

M2Status = HIGH;

M3Status = LOW;

M4Status = HIGH;

SetEN();

}

void back(void)

{

M1Status = HIGH;

M2Status = LOW;

M3Status = HIGH;

M4Status = LOW;

SetEN();

}

void right(void)

{

M1Status = LOW;

M2Status = HIGH;

M3Status = HIGH;

M4Status = LOW;

SetEN();

}

void left(void)

{

M1Status = HIGH;

M2Status = LOW;

M3Status = LOW;

M4Status = HIGH;

SetEN();

}

void Stop(void)

{

en1 = 0;

en2 = 0;

M1Status = LOW;

M2Status = LOW;

M3Status = LOW;

M4Status = LOW;

SetEN();

}

//设置两侧速度

void SetEN()

{

analogWrite(EN1, en1);

analogWrite(EN2, en2);

digitalWrite(M1, M1Status);

digitalWrite(M2, M2Status);

digitalWrite(M3, M3Status);

digitalWrite(M4, M4Status);

}

摇杆芯片速度测试软件,摇杆控制小车+L9110芯片相关推荐

  1. 芯片噪声测试软件,教你如何测量芯片数字模拟噪声 - 全文

    摘要:在数字设计中,需要持续关注模拟网络上的串扰风险问题,传统流程中通常不会分析此问题.本文将介绍一种利用PrimeTIme-SI来生成由数字信号在模拟网络上引起的串扰上限的技术.如果此技术揭露出潜在 ...

  2. 解决“chrome正受到自动测试软件的控制”信息栏显示问题(转)

    在使用Selenium WebDriver启动谷歌浏览器Chrome时,在新启动的浏览器地址栏下方经常会显示一行提示信息:"chrome正受到自动测试软件的控制",英文的就是&qu ...

  3. Python selenium 去掉“隐藏正受到自动测试软件的控制”

    以前使用selenium控制Chrome时,当出现"Chrome 正在受到自动软件的控制"信息栏的情况,会增加"disable-infobars"这个Chrom ...

  4. 测试打字速度测试程序c语言,打字速度测试软件

    打字速度测试软件是一款为测试打字速度而制作的一款打字速度测试的软件.应聘时需要测试打字速度时这款软件便派上了用场.只需首先将需要考试的人员姓名和考号录入数据库,考试时您无需记录,系统会将考号.姓名.考 ...

  5. 中文打字速度测试软件官网,中文打字速度测试软件

    使用该软件能够帮助用户测试自己的打字速度,阿宽中文打字速度测试软件专业的字数测试软件想知道自己打字速度水平赶快下载试试吧! 软件介绍: 中文打字速度测试软件是一款专业的用来测试打字速度的软件,软件安精 ...

  6. 解决“chrome正受到自动测试软件的控制”信息栏显示问题-V76及以上版本

    在使用Selenium WebDriver启动谷歌浏览器Chrome时,在新启动的浏览器地址栏下方经常会显示一行提示信息:"chrome正受到自动测试软件的控制",英文的就是&qu ...

  7. 32g的u盘速度测试软件,傻乎乎买U盘被坑篇:USB2.0速度究竟有多低,闪迪酷晶系列快测!...

    HELLO,我是小学弟. 上一个U盘在上版式设计课的时候忘了机房了里了,再去找也没找到,U盘里资料倒是不多,全都网盘备份过,只是可惜我U盘的里的那些小姐姐. 再来个大写的表情: 你们肯定会说,你不是还 ...

  8. type-c速度测试软件,Type-C读写速度太慢 你真的使用了正确的方法了吗

    对于USB接口,大家可能都不陌生,作为数据传输的通用接口标准,日常我们用的手机.电脑.硬盘.U盘基本都是USB接口.提到USB接口,有不得不提最近两年大火的USB 3.1接口,由于其更高的传输速度,更 ...

  9. usb3.0传输速度测试软件,USB3.0与USB2.0的传输速度对比测试

    USB 3.0对多数电脑爱好者都已经不陌生,发布也有段时间了,多数朋友大概都还只知道USB 3.0接口传送数据能力比USB 2.0接口快很多,但到底有多快,可能就很少人知道了.下面小编就为大家介绍一下 ...

最新文章

  1. IBD:5-氨基水杨酸治疗后溃疡性结肠炎患者真菌菌群的变化
  2. 通过“委派”过滤组策略设置
  3. 题解 DTOJ #1515.三塔合一
  4. JDK 11:新的默认收集方法toArray(IntFunction)
  5. 获2017中国最佳创业投资机构百强,西高投二次创业实现超越
  6. c语言计算1+2+3+4+......n
  7. tbopen链接生成工具_筛选了100个配色工具后,我挑出了这25个
  8. 30个高质量的Psd设计文件分享
  9. 一拳超人手游显示服务器断开,一拳超人最强之男游戏无法登陆怎么办 解决方案一览...
  10. springboot学习笔记
  11. Json字符串的转换
  12. 使用A*算法求最短路径
  13. Java面向对象总结
  14. swust oj 971
  15. 运动想象| EEG信号、共空间模式算法(CSP)
  16. 大数据运维HBase
  17. 短语a slap on the wrist
  18. 【ECAPA_TDNN 下 】代码和论文细节分析
  19. 如何用matlab拟合二元函数,怎么拟合二元函数?用什么软件比较容易实现?
  20. 2022-2028全球激光清洗设备行业调研及趋势分析报告

热门文章

  1. 机票报价高并发实施的关键路径
  2. SwitchResX 4.6 调整外接显示器分辨率
  3. JAVA 面向对象与面向过程区别
  4. 中柏ezpadE7装linux,中柏EZpad i7怎么样 中柏EZpad i7详细评测
  5. 颓废,颓废,还是颓废
  6. 如何去评估一个算法的时间复杂度?
  7. 2022考研笔记-政治(马原-科学社会主义理论)
  8. 服务器磁盘阵列-RAID配置
  9. 海上钢琴师——陆地对我而言不过是一个更大的船
  10. 皮影机器人ppt_第27届计算机表演赛—智能皮影机器人