小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 10404|回复: 10

求助,智能小车使用Arduino UNO连接L298N和RG100A路由器的问题

[复制链接]
发表于 2013-7-14 16:14:13 | 显示全部楼层 |阅读模式
本帖最后由 AnnryLeen 于 2013-7-14 16:16 编辑

手头有一块RG100A的路由器 之前别的小车用的 已经刷好Openwrt的WIFI小车固件
还有Arduino UNO的板子和一块L298N的电机驱动板和四个马达

想拼成一个WIFI小车,可是不知道该L298N和Arduino怎么连线

RG100A的TTL引脚定义也忘了是什么样的了

还有 在Arduino单片机部分使用如下的源代码可以使用兼容L298N和论坛的上位机么?

希望各位大侠赐教,不胜感激(图片已经加在帖子后面)
===============================================
// motor A
int dir1PinA = 13;
int dir2PinA = 12;
int speedPinA = 10;
// motor B
int dir1PinB = 9;
int dir2PinB = 8;
int speedPinB = 6;
int LED = 13;
int speed;
int dir;
int buffer[3];
int Serial_flag;
int date_index=0;
void setup()
{
pinMode(dir1PinA,OUTPUT);
pinMode(dir2PinA,OUTPUT);
pinMode(speedPinA,OUTPUT);
pinMode(dir1PinB,OUTPUT);
pinMode(dir2PinB,OUTPUT);
pinMode(speedPinB,OUTPUT);
pinMode(LED,OUTPUT);
Serial.begin(9600); // 打开串口,设置波特率为9600 bps

speed = 0;
dir = 1;
}
void MOTOA(int speed,int dir)
{
analogWrite(speedPinA,speed);
if (dir == 1)
{
digitalWrite(dir1PinA,LOW);
digitalWrite(dir2PinA,HIGH);
}
else
{
digitalWrite(dir1PinA,LOW);
digitalWrite(dir2PinA,LOW);
}
}
void MOTOB(int speed,int dir)
{
analogWrite(speedPinB,speed);
if (dir == 1)
{
digitalWrite(dir1PinB,LOW);
digitalWrite(dir2PinB,HIGH);
}
else
{
digitalWrite(dir1PinB,LOW);
digitalWrite(dir2PinB,LOW);
}
}
void MOTOBACK(int speed)
{
analogWrite(speedPinB,speed);
analogWrite(speedPinA,speed);

digitalWrite(dir1PinB,HIGH);
digitalWrite(dir2PinB,LOW);
digitalWrite(dir1PinA,HIGH);
digitalWrite(dir2PinA,LOW);
}
void Communication_Decode()
{
if(buffer[0]==0x00)
{
switch(buffer[1])
{
case 0x01: MOTOA(150,1);MOTOB(0,0);return;
case 0x02: MOTOA(0,0); MOTOB(150,1); return;
case 0x03: MOTOBACK(200); return;
case 0x04:
MOTOA(220,1);
MOTOB(220,1);
return;
case 0x00:
MOTOA(0,0);
MOTOB(0,0);
return;
}
}
}

void loop()
{
int temp_char;


while(Serial.available() > 0)
{
temp_char = Serial.read();
if(temp_char!=-1)
{
if(Serial_flag==0)
{
if(temp_char==0xff)
{
Serial_flag = 1;
}
}
else
{
if(temp_char==0xff)
{
Serial_flag = 0;
if(date_index==3)
{
Communication_Decode();
}
date_index = 0;
}
else
{
buffer[date_index]=temp_char;
Serial.println(buffer[date_index],HEX);
date_index++;
}
}
}
}
}
==============================================
02.JPG

01.JPG




回复

使用道具 举报

发表于 2013-7-14 18:41:59 | 显示全部楼层
Arduino没玩过,不是很确定,但是从代码看,应该是兼容的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-14 21:16:15 | 显示全部楼层
liuviking 发表于 2013-7-14 18:41
Arduino没玩过,不是很确定,但是从代码看,应该是兼容的。

我想请教一下该怎么接线呢?
回复 支持 反对

使用道具 举报

发表于 2013-7-14 21:27:51 | 显示全部楼层
AnnryLeen 发表于 2013-7-14 21:16
我想请教一下该怎么接线呢?

路由TX-驱动板RX ;路由RX-驱动板TX ;路由GND-驱动板GND
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-14 21:32:09 | 显示全部楼层
liuviking 发表于 2013-7-14 21:27
路由TX-驱动板RX ;路由RX-驱动板TX ;路由GND-驱动板GND

那Arduino或者单片机和L298N应该如何连接呢?
回复 支持 反对

使用道具 举报

发表于 2013-7-14 22:29:38 | 显示全部楼层
AnnryLeen 发表于 2013-7-14 21:32
那Arduino或者单片机和L298N应该如何连接呢?

单片机四个IO与298四个逻辑输入连接,298的ENA ENB接高电平即可。Arduino不会。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-14 22:53:28 | 显示全部楼层
liuviking 发表于 2013-7-14 22:29
单片机四个IO与298四个逻辑输入连接,298的ENA ENB接高电平即可。Arduino不会。

那如果我用STC 89C52RC单片机+L298N开发板+RG100A路由器的话供电应该怎么连接呢?
回复 支持 反对

使用道具 举报

发表于 2013-7-14 23:43:31 | 显示全部楼层
AnnryLeen 发表于 2013-7-14 22:53
那如果我用STC 89C52RC单片机+L298N开发板+RG100A路由器的话供电应该怎么连接呢?

全部独立供电,GND全部连一起。
回复 支持 反对

使用道具 举报

发表于 2013-7-15 02:53:09 | 显示全部楼层
完全可以兼容的,而且还可以加装舵机。
UNO的数字口13、12和9、8接L298N的In 1、2、3、4;10、6 分别接EnA、EnB 。但源代码里--int dir1PinA = 13 和 int LED = 13 好像有冲突。
回复 支持 反对

使用道具 举报

发表于 2013-7-15 19:22:01 | 显示全部楼层
必须兼容啊,貌似arduino下位机的代码是我写的,呵呵。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-11-23 10:14 , Processed in 1.104720 second(s), 23 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

快速回复 返回顶部 返回列表