Что я делаю не так? unit8_t' не был объявлен в этой области, ошибка: ожидаемое первичное выражение перед токеном ')'
#include <VirtualWire.h>
const int sen1 = 9;
const int sen2 = 10;
const int sen3 = 11;
const int sen4 = 12;
int key1 = 5, ipin = A1, wpin = A0;
void setup() {
Serial.begin(9600);
vw_setup(2000);
vw_set_tx_pin(3);
pinMode (key1, INPUT);
digitalWrite (key1, HIGH);
}
void loop() {
int dif = 5, dif2 = 500, ldr, wtr;
long dur1, dur2, dur3, dur4, dis1, dis2, dis3, dis4;
wtr = analogRead(wpin);
ldr + analogRead(ipin);
pinMode(sen1, OUTPUT);
digitalWrite(sen1, LOW);
delayMicroseconds(2);
digitalWrite(sen1, HIGH);
delayMicroseconds(10);
digitalWrite(sen1, LOW);
pinMode(sen1, INPUT);
dur1 = pulseIn(sen1, HIGH);
dis1 = microsecondsToInches(dur1);
pinMode(sen2, OUTPUT);
digitalWrite(sen2, LOW);
delayMicroseconds(2);
digitalWrite(sen2, HIGH);
delayMicroseconds(10);
digitalWrite(sen2, LOW);
pinMode(sen2, INPUT);
dur2 = pulseIn(sen2, HIGH);
dis2 = microsecondsToInches(dur2);
delayMicroseconds(2);
digitalWrite(sen4, HIGH);
delayMicroseconds(10);
digitalWrite(sen4, LOW);
pinMode(sen4, INPUT);
dur4 = pulseIn(sen4, HIGH);
dis4 = microsecondsToInches(dur4);
Serial.print(dis1);
Serial.print("s1,");
Serial.print(dis2);
Serial.print("s2,");
Serial.print(dis3);
Serial.print("s3,");
Serial.print(dis4);
Serial.print("s4,");
Serial.println(); delay(0);
if (wtr > dif2) {
wstop();
}
if (ldr > dif2 && key1 == HIGH) {
light();
}
if (ldr > dif2 && key1 == HIGH) {
nolight();
}
if (dis2 < 3 || dis3 < 3) {
stoped();
}
if (dis1 < 3 && dis2 > dis1 && dis3 > dis2) {
group();
}
if (dis4 > 3) {
godown();
}
if (dis1 < 3 && dis2 == dis3) {
jump();
}
if (dis1 > 3 && dis2 > 3 && dis3 > 3 && dis4 < 3 && wtr < dif2) {
forword();
}
}
long microsecondsToInches(long microseconds) {
return microseconds / 74 / 4;
}
void forword() {
char *msg2 = "0";
vw_send((unit8_t *) msg, strlen(msg2));
vw_wait_tx(); Serial.print("FORWORD");
delay(1000);
}
void stoped() {
char *msg2 = "1";
vw_send((unit8_t *)msg2, strlen(msg2));
vw_wait_tx(); Serial.print("STOP");
delay(1000);
}
void group() {
char *msg2 = "2";
vw_send((unit8_t *)msg2, strlen(msg2));
vw_wait_tx(); Serial.print("GROUP");
delay(1000);
}
void godown() {
char *msg2 = "3";
vw_send((unit8_t *)msg2, strlen(msg2));
vw_wait_tx(); Serial.print("GODOWN");
delay(1000);
}
void jump() {
char *msg2 = "4";
vw_send((unit8_t *)msg2, strlen(msg2));
vw_wait_tx(); Serial.print("JUMP");
delay(1000);
}
void wstop() {
char *msg2 = "5";
vw_send((unit8_t *)msg2, strlen(msg2));
vw_wait_tx(); Serial.print("WSTOP");
delay(1000);
}
void light() {
char *msg2 = "6"
vw_send((unit8_t *)msg2, strlen(msg2));
vw_wait_tx(); Serial.print("LIGHT");
delay(1000);
}
void nolight() {
char *msg2 = "7";
vw_send((unit8_t *)msg2, strlen(msg2));
vw_wait_tx(); Serial.print("NOLIGHT");
delay(1000);
}
@Tashii Gurung, 👍-1
Обсуждение1 ответ
Вы имеете в виду uint8_t
, а не unit8_t
. uint8_t
означает Unsigned INTeger размером 8.
Кроме того, вы, кажется, взяли два разных скетча и просто сбросили их один за другим. Это не то, как вы комбинируете скетчи. У вас может быть один и только один каждый из setup()
и loop()
.
он говорит об этом, ошибка: «unit8_t» не был объявлен в этой области vw_send((unit8_t *) msg, strlen(msg2));, @Tashii Gurung
@TashiiGurung Прочитайте то, что вы написали **очень внимательно**., @Majenko
@TashiiGurung **Очень осторожно**: unit8_t buf [ VW_MAX_MESSAGE_LEN } ;
"u nit" вместо "u int" здесь не единственная ошибка, @KIIV
Может тогда стоит починить брекеты? На самом деле вам следует просто полностью удалить «скетч» и начать с нуля. Это соревновательный мусор., @Majenko
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Я голосую за закрытие этого вопроса, потому что он касается орфографической ошибки и не имеет прямого отношения к Arduino., @chrisl
Я бы отнес этот код к категории «невосстановимых». Удалите его и начните заново после изучения основ программирования на C., @Majenko
Зачем закрывать такой вопрос? Некоторые люди, включая меня, могут смотреть на опечатку и видеть то, что они ожидают, а не то, что там есть. Иногда мне нужен пинок под зад от кого-то другого. Этот вопрос кажется полезным уроком в том, что «компилятор не понимает, что вы **имеете в виду**. Если у вас есть орфографическая ошибка в вашем коде, она вызовет ошибку компилятора, и вы должны ее исправить»., @Duncan C
Вы уже успешно запускали какой-либо из этих кодов? Когда вы пишете много кода, прежде чем скомпилировать и протестировать какой-либо из них, вы обычно получаете много ошибок или в конечном итоге получаете много непригодного для использования кода, когда обнаруживаете, что какое-то базовое предположение было неверным — или и то, и другое. Начните с малого — напишите несколько строк за раз, скомпилируйте и исправьте все ошибки. Завершите и протестируйте небольшую часть общего проекта и заставьте его работать, прежде чем добавлять к нему что-либо еще. Тогда каждый раз, когда что-то выходит из строя, вы точно знаете, где проблема: она будет в том, что вы только что добавили., @JRobert