Непонятная ошибка в коде...
- Войдите на сайт для отправки комментариев
Пнд, 05/11/2018 - 12:53
Здравствуйте заноки ардуино, пока что я только начинающий, но уже много что знаю и понимаю. В стартовом наборе давался 7-ми сигментный индикатор. Я написал довольно протую программу где при получении цифры на com порт она высвечивается на индикаторе. Мне выдало эту ошибку, я ее раньше не встречал, в интернете тоже не нашел:( Помогите!!! Заранее спасибоё!
Ошибка:
Arduino: 1.8.6 (Mac OS X), Плата:"Arduino/Genuino Uno"
/Users/zez/Documents/Arduino/beta/beta.ino: In function 'void loop()':
beta:21:66: error: no matching function for call to 'HardwareSerial::println(const char [17], int&, const char [23])'
Serial.println("значение", ch, "установлено");
^
код:
void setup() { Serial.begin(9600); pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(8,OUTPUT); pinMode(9,OUTPUT); } void loop() { int ch = Serial.read() - '0'; if(ch == 1){ Serial.println("значение", ch, "установлено"); digitalWrite(3,HIGH); digitalWrite(8,HIGH);} if(ch == 2){ Serial.println("значение", ch, "установлено"); digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(7,HIGH); digitalWrite(8,HIGH); digitalWrite(9,HIGH);} if(ch == 3){ Serial.println("значение", ch, "установлено"); digitalWrite(7,HIGH); digitalWrite(4,HIGH); digitalWrite(3,HIGH); digitalWrite(8,HIGH); digitalWrite(9,HIGH);} if(ch == 4){ Serial.println("значение", ch, "установлено"); digitalWrite(6,HIGH); digitalWrite(3,HIGH); digitalWrite(8,HIGH); digitalWrite(9,HIGH);} if(ch == 5){ Serial.println("значение", ch, "установлено"); digitalWrite(7,HIGH); digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(8,HIGH); digitalWrite(9,HIGH);} if(ch == 6){ Serial.println("значение", ch, "установлено"); digitalWrite(5,HIGH); digitalWrite(4,HIGH); digitalWrite(3,HIGH); digitalWrite(6,HIGH); digitalWrite(9,HIGH); digitalWrite(7,HIGH);} if(ch == 7){ Serial.println("значение", ch, "установлено"); digitalWrite(7,HIGH); digitalWrite(3,HIGH); digitalWrite(8,HIGH); digitalWrite(9,HIGH);} if(ch == 8){ Serial.println("значение", ch, "установлено"); digitalWrite(3,HIGH); digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,HIGH); digitalWrite(7,HIGH); digitalWrite(8,HIGH); digitalWrite(9,HIGH);} if(ch == 9){ Serial.println("значение", ch, "установлено"); digitalWrite(4,HIGH); digitalWrite(6,HIGH); digitalWrite(8,HIGH); digitalWrite(6,HIGH); digitalWrite(9,HIGH); digitalWrite(7,HIGH);} if(ch == 0){ Serial.println("значение", ch, "установлено"); digitalWrite(3,HIGH); digitalWrite(4,HIGH); digitalWrite(5,HIGH); digitalWrite(6,HIGH); digitalWrite(8,HIGH); digitalWrite(7,HIGH);} else{ Serial.println("принимается только однозначное число!"); } }
Чего пытаетесь получить-то?
а если изменить на вот так:
Хорошо, попробую напишу.
Да, спасибо большое, больше не барахлит!
поменяй на
Спасибо!
поменяй на
Можно и так, но если сжимать память, то не сработает, а так будет работать:
А Ардуино еще и память умеет сжимать?
(вроде бы уж дальше сжимать некуда. Разумеется, если не вспоминать о предшествующих поколениях микроконртроллеров с 256- байтами оперативной памяти)