#include <HCSR04.h>
#include "Bsp.h"
#include "Motor.h"
#include "CH452.h"
#include "stm32f10x_tim.h"
#include "timer.h"
int Motor_PWM_1 = 0;
int Motor_PWM_2 = 0;
int s1 = 0;
int s2 = 0;
int s3 = 0;
int s4 = 0;
int s5 = 0;
int s6 = 0;
int s7 = 0;
int s8 = 0;
int s9 = 0;
int s10 = 0;
int s11 = 0;
int s12 = 0;
void GoStraight(void) {
delay_ms(10);
Set_Motor1_RPM(180);
Set_Motor2_RPM(180);
}
void TurnLeft(void) {
delay_ms(10);
Set_Motor1_RPM(100);
Set_Motor2_RPM(180);
delay_ms(10);
}
void TurnRight(void) {
delay_ms(10);
Set_Motor1_RPM(180);
Set_Motor2_RPM(100);
delay_ms(10);
}
void StopMotors(void) {
Set_Motor1_RPM(0);
Set_Motor2_RPM(0);
}
// Put distanceSensor1 on the right of automation car
UltraSonicDistanceSensor distanceSensor1(A4, A5); // Change it to the correct pin A4 = trig, A5 = echo
// Put distanceSensor2 on the middle of automation car
UltraSonicDistanceSensor distanceSensor2(A6, A7); // Change it to the correct pin A6 = trig, A7 = echo
// Put distanceSensor3 on the back of automation car
UltraSonicDistanceSensor distanceSensor3(A8, A9); // Change it to the correct pin A8 = trig, A9 = echo
void setup() {
Serial.begin(9600);
BSP_Init();
}
void loop() {
float distance1 = distanceSensor1.measureDistanceCm();
float distance2 = distanceSensor2.measureDistanceCm();
float distance3 = distanceSensor3.measureDistanceCm();
Serial.println(distance1);
Serial.println(distance2);
Serial.println(distance3);
s1 = Read_IO1;
s2 = Read_IO2;
s3 = Read_IO3;
s4 = Read_IO4;
s5 = Read_IO5;
s6 = Read_IO6;
s7 = Read_IO7;
s8 = Read_IO8;
s9 = Read_IO9;
s10 = Read_IO10;
s11 = Read_IO11;
s12 = Read_IO12;
delay(500);
if ((distance1 >= 10) && (s6 == 1 || s7 == 1 || s8 == 1 || s5 == 1)) {
GoStraight();
}
else if ((distance2 <= 4) && (s11 == 1 || s12 == 1)) {
TurnRight();
}
else if ((distance2 > 4) && (distance1 >= 10) && (s1 == 1 || s2 == 1)) {
TurnLeft();
}
else if (distance1 < 10) {
TurnRight();
if (distance3 == 10) {
GoStraight();
}
else if (distance3 == 5) {
// Put program of hand robot
}
else if (distance2 <= 4) {
// Put program for moveback
}
}
}
Loading
stm32-bluepill
stm32-bluepill