|
楼主 |
发表于 2019-3-23 20:34
|
显示全部楼层
以下是我用一组CC2530模块控制实现远程遥控,通过Arduino控制小车前进和后退的源代码:
Arduino + L298N + CC2530模块
#define ENA 5
#define ENB 6
#define IN1 7
#define IN2 8
#define IN3 10
#define IN4 9
char val;
void setup() {
// put your setup code here, to run once:
//注意要和CC2530模块的波特率设置一致,此处默认使用的是Arduino mage2560 的串口0,此组串口和USB线的串口是相通的,所以在烧写程序的时候应该取掉cc530模块
//另外,cc2530的RX、TX和Arduino连接的时候,应注意Arduin的Rx 接CC2530的Tx;Tx也是这样的。
Serial.begin(115200);
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
//Serial.read()函数一次只能读取一个字节的内容,读取之后,串口中这个字节的你内容就没了,下一次读取的时候就自动读取下一个字节的内容
if (Serial.available() > 0)
{
val = Serial.read();
if (val == '8')
GOForward();
if (val == '2')
BackUp();
if(val=='0')
Stop();
}
}
void GOForward()
{
digitalWrite(IN1, HIGH);
digitalWrite(IN2,LOW);
analogWrite(ENA, 100);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
analogWrite(ENB, 100);
Serial.println("Go_Forward");
}
void BackUp()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2,HIGH);
analogWrite(ENA, 100);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
analogWrite(ENB, 100);
Serial.println("Back_Up");
}
void Stop()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,LOW);
Serial.println("Stop");
} |
|