Непонятная ошибка в коде...
- Войдите на сайт для отправки комментариев
Пнд, 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("принимается только однозначное число!");
}
}
Чего пытаетесь получить-то?
а если изменить на вот так:
Serial.print("значение - "); Serial.print(ch); Serial.println(" установлено");Хорошо, попробую напишу.
Да, спасибо большое, больше не барахлит!
поменяй на
Serial.println("значение: " + ch + " установлено");Спасибо!
поменяй на
Serial.println("значение: " + ch + " установлено");Можно и так, но если сжимать память, то не сработает, а так будет работать:
Serial.print(F("значение - ")); Serial.print(ch); Serial.println(F(" установлено"));А Ардуино еще и память умеет сжимать?
(вроде бы уж дальше сжимать некуда. Разумеется, если не вспоминать о предшествующих поколениях микроконртроллеров с 256- байтами оперативной памяти)