Загрузка данных
мой код
исправь ошибки
#include <Arduino.h>
int max_speed =135;
int red_sens = 70;
int green_sens = 50;
int calibrate_time = 3;
int lag_time = 1;
unsigned long last_time = 0;
int calib_R_red, calib_G_red, calib_B_red;
int calib_R_green, calib_G_green, calib_B_green;
int RED, GREEN, BLUE;
void Init_Motors(){
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(8, INPUT);
pinMode(11, INPUT);
}
void Mesure_color(){
digitalWrite(A0, LOW); digitalWrite(10, LOW);
RED = pulseIn(9, LOW, 20000);
digitalWrite(A0, HIGH); digitalWrite(10, HIGH);
GREEN = pulseIn(9, LOW, 20000);
digitalWrite(A0, LOW); digitalWrite(10, HIGH);
BLUE = pulseIn(9, LOW, 20000);
}
void STOP(){
analogWrite(5, 0);
analogWrite(6, 0);
}
void Robot_tracking(){
bool left = digitalRead(7);
bool right = digitalRead(8);
if (!left && !right){
digitalWrite(2, LOW);
digitalWrite(4, LOW);
analogWrite(5, max_speed);
analogWrite(6, max_speed);
} if (left && !right){
digitalWrite(2, HIGH);
digitalWrite(4, LOW);
analogWrite(5, max_speed);
analogWrite(6, max_speed);
} if (!left && right){
digitalWrite(2, LOW);
digitalWrite(4, HIGH);
analogWrite(5, max_speed);
analogWrite(6, max_speed);
} else{
STOP();
}
}
void Blink_LED(int pin){
for(int i = 0; i < 5;i++){
digitalWrite(pin, HIGH);
delay(200);
digitalWrite(pin,LOW);
delay(200);
}
}
bool colormatch(int cR, int cG, int cB, int tolerance){
return (abs(RED-cR)< tolerance && abs(GREEN-cG) < tolerance && abs(BLUE-cB) < tolerance);
}
void setup(){
Init_Motors();
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(A4, OUTPUT);
pinMode(A3, OUTPUT);
pinMode(A0, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, INPUT);
digitalWrite(A0, HIGH);
digitalWrite(10, LOW);
digitalWrite(A1, HIGH);
delay(calibrate_time * 1000);
Mesure_color();
calib_R_green = RED; calib_G_green = GREEN; calib_B_green = BLUE;
digitalWrite(A1, LOW);
delay(1000);
digitalWrite(A2, HIGH);
delay(calibrate_time * 1000);
Mesure_color();
calib_R_red = RED; calib_G_red = GREEN; calib_B_red = BLUE;
digitalWrite(A2, LOW);
}
void loop(){
Mesure_color();
if (colormatch(calib_R_red, calib_G_red, calib_B_red, red_sens)) {
if (millis() - last_time > (unsigned long)lag_time * 1000) {
STOP();
Blink_LED(A2);
last_time = millis();
}
}
else if (colormatch(calib_R_green, calib_G_green, calib_B_green, green_sens)) {
if (millis() - last_time > (unsigned long)lag_time * 1000) {
STOP();
Blink_LED(A1);
last_time = millis();
}
}
}
исправь мой код вот тестовые функции
int sens1 = 8;
int sens2 = 7;
int sens3 = 11;
int val1;
int val2;
int val3;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(sens1, INPUT);
pinMode(sens2, INPUT);
pinMode(sens3, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
val1=digitalRead(sens1);
Serial.print("val1=");
Serial.println(val1);
val2=digitalRead(sens2);
Serial.print("val2=");
Serial.println(val2);
val3=digitalRead(sens3);
Serial.print("val3=");
Serial.println(val3);
delay(500);
}
void setup() {
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}
void loop() {
digitalWrite(2, LOW);
digitalWrite(4, LOW);
digitalWrite(5, 255);
digitalWrite(6, 255);
delay(10000);
digitalWrite(2, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, 0);
digitalWrite(6, 255);
delay(10000);
digitalWrite(2, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, 0);
digitalWrite(6, 0);
delay(10000);
digitalWrite(2, LOW);
digitalWrite(4, HIGH);
digitalWrite(5, 0);
digitalWrite(6, 255);
delay(10000);
}