以下程序烧录测试。
void setup(){
pinMode(13, OUTPUT);//设定13号端口为输出
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(9, OUTPUT);
}
void loop(){
digitalWrite(9, HIGH);
delayMicroseconds(100); // 大约10%占空比的1KHz方波
digitalWrite(9, LOW);
delayMicroseconds(900);
}
好像没啥反应。代码好像不太对,接下来将SCK,CS,MISO对应接到ARDUINO的引脚3,4,5上。测试一下新的代码看看能不能从这些口读出一些数据。
#define SCK_PIN 3 // 模块上的SCK口连接到 pin3
#define CS_PIN 4 // 模块上的CS口连接到 pin4
#define SO_PIN 5 // 模块上的SO口连接到 pin5
// 不要忘了模块上的5v和GND要连接到arduino开发板
MAX6675_Thermocouple*thermocouple = NULL;
// the setup func
tionruns once when you press reset or power the board
void setup() {
Serial.begin(9600); //设置串口波特率9600
thermocouple = newMAX6675_Thermocouple(SCK_PIN, CS_PIN, SO_PIN);
}
// the loop functionruns over and over again forever
void loop() {
double celsius =thermocouple->readCelsius(); // 摄氏度
Serial.println(celsius); // println打印会自动添加'rn',可以在串口绘图器显示
delay(500);// 延时500ms
}
代码上还是应该有一些问题的。我继续再排查一下尝试看看PWM的控制。
int switchPin1 = 5;//定义switchPin1引脚为7链接加速键
int switchPin2 =6;//定义switchPin2引脚为8链接减速键
int motorspeed = 9; //定义motorspeed引脚为9
int a=0;//变量a用来存储数值
void setup() {
pinMode(switchPin1,INPUT);//设定switchPin1引脚为输入状态
pinMode(switchPin2,INPUT);//设定switchPin2引脚为输入状态
pinMode(motorspeed,OUTPUT);//设定motorspeed引脚为输出状态
}
void loop()
{if (LOW == digitalRead(switchPin1))//如果switchPin1为低电平
{a=a+ 10;
analogWrite(motorspeed,a);//将a的值赋给motorspeed
delay(1000);}//延时一秒
if(LOW == digitalRead(switchPin2))//如果switchPin2为低电平
{
a=a- 10;
analogWrite(motorspeed,a);//将a的值赋给motorspeed
delay(1000);//延时一秒
}
}
应该是代码还是有一些问题,调整一下,分别对两个步进电机进行测试运行,最后发现应该是电机没有驱动起来。电源问题,等找到电源再进行最后的测试,
找了一些完整的驱动小车的代码,等电源步进电机问题解决后进行进一步的测试完成。
int i=0;
voidForward();
voidBack();
voidTurn_left();
voidTurn_right();
voidSpeed_up();
voidSlow_down();
voidsetup() {
// put your setup code here, to run once:
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
}
voidloop() {
// put your main code here, to run repeatedly:
Forward();
Back();
Turn_left();
Turn_right();
Speed_up();
Slow_down();
}
voidForward(){
//youguys must understand which pin connect to VCC,which pin connect to GND
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
delay(4000);
}
voidBack(){
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
delay(4000);
}
voidTurn_left(){
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
delay(4000);
}
voidTurn_right(){
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
digitalWrite(5,LOW);
digitalWrite(6,LOW);
delay(4000);
}
voidSpeed_up(){
for(i=0;i<=255;i+=5){
analogWrite(9,i);
analogWrite(10,0);
analogWrite(5,i);
analogWrite(6,0);
delay(50);
}//speed up
}
voidSlow_down(){
for(i=255;i>=0;i-=5){
analogWrite(9,i);
analogWrite(10,0);
analogWrite(5,i);
analogWrite(6,0);
delay(50);
}
}
使用PWM进行转向前进后退等驱动测试。将进一步排查硬件后完成测试。本次测试主要是从,PWM 进行驱动板TB67H451的控制来进一步对智能小车进行控制。