Proszę o pomoc rozwiązaniu problemu z zmienną char w środowisku Arduino IDE
kod błędu to :
Arduino:1.8.18 (Windows Store 1.8.55.0) (Windows 10), Płytka:"Arduino Uno"
C:\Users\minec\Documents\Arduino\hc06\hc06.ino: In function 'void loop()':
hc06:47:9: error: 'state' was not declared in this scope
if (state == '0') {
^~~~~
C:\Users\minec\Documents\Arduino\hc06\hc06.ino:47:9: note: suggested alternative: 'static'
if (state == '0') {
^~~~~
static
hc06:66:9: error: 'state' was not declared in this scope
if (state == 70) {
^~~~~
C:\Users\minec\Documents\Arduino\hc06\hc06.ino:66:9: note: suggested alternative: 'static'
if (state == 70) {
^~~~~
static
C:\Users\minec\Documents\Arduino\hc06\hc06.ino: At global scope:
hc06:111:1: error: expected declaration before '}' token
}
^
exit status 1
'state' was not declared in this scope
Ten raport powinien zawierać więcej informacji jeśli w
File -> Preferencje zostanie włączona opcja "Pokaż
szczegółowe informacje podczas kompilacji"
#include <SoftwareSerial.h>
//#include "hardcar_ruch.h"
SoftwareSerial hcSerial(10, 11); // RX, TX
#define trig 12
#define echo 13
#define lewy1 7
#define lewy2 8
#define lewypwm 5
#define prawy1 2
#define prawy2 3
#define prawypwm 6
//#include <Servo.h>
//Servo myservo;
void przod();
void tyl();
void lewo();
void prawo();
void stop();
void setup() {
// put your setup code here, to run once:
pinMode(lewy1, OUTPUT);
pinMode(lewy2, OUTPUT);
pinMode(lewypwm, OUTPUT);
pinMode(prawy1, OUTPUT);
pinMode(prawy2, OUTPUT);
pinMode(prawypwm, OUTPUT);
pinMode(echo, INPUT);
pinMode(trig, OUTPUT);
//myservo.attach(11);
Serial.begin(9600); // hardware serial for the USB-PC
hcSerial.begin(9600); // software serial Arduino to HC-06 (9600 is default)
}
void loop() {
if (hcSerial.available()) {
//startUp = 1;
char state; // tu deklaruję zmienną
state = hcSerial.read(); / /tu ustawiam wartość zmiennej na odczyt z Software serial port 3 linia kodu
}
int vSpeed;
if (state == '0') { // tu jest błąd
vSpeed = 0;
}
else if (state == '1') {
vSpeed = 100;
}
else if (state == '2') {
vSpeed = 180;
}
else if (state == '3') {
vSpeed = 200;
}
else if (state >= '4') {
vSpeed = 255;
}
// vSpeed = 255;
analogWrite(lewypwm, vSpeed);
analogWrite(prawypwm, vSpeed);
/***********************Forward****************************/
if (state == 70) { //tu jest bład
przod();
}
/***********************Backward****************************/
else if (state == 'B') {
tyl();
}
/***************************Left*****************************/
else if (state == 'L') {
prawo();
}
/***************************Right*****************************/
else if (state == 'R') {
lewo();
}
/************************Stop*****************************/
else if (state == 'S') {
stop();
} else {
stop();
}
}
}
void przod() {
analogWrite(lewypwm, 255);
analogWrite(prawypwm, 255);
digitalWrite(lewy1, HIGH);
digitalWrite(lewy2, LOW);
digitalWrite(prawy1, HIGH);
digitalWrite(prawy2, LOW);
}
void tyl() {
analogWrite(lewypwm, 255);
analogWrite(prawypwm, 255);
digitalWrite(lewy1, LOW);
digitalWrite(lewy2, HIGH);
digitalWrite(prawy1, LOW);
digitalWrite(prawy2, HIGH);
}
void lewo() {
analogWrite(lewypwm, 100);
analogWrite(prawypwm, 255);
digitalWrite(lewy1, HIGH);
digitalWrite(lewy2, LOW);
digitalWrite(prawy1, HIGH);
digitalWrite(prawy2, LOW);
}
void prawo() {
analogWrite(lewypwm, 255);
analogWrite(prawypwm, 100);
digitalWrite(lewy1, HIGH);
digitalWrite(lewy2, LOW);
digitalWrite(prawy1, HIGH);
digitalWrite(prawy2, LOW);
}
void stop() {
analogWrite(lewypwm, 255);
analogWrite(prawypwm, 255);
digitalWrite(lewy1, LOW);
digitalWrite(lewy2, LOW);
digitalWrite(prawy1, LOW);
digitalWrite(prawy2, LOW);
}