Непонятная ошибка в коде...

artemka_60
artemka_60 аватар
Offline
Зарегистрирован: 05.11.2018

Здравствуйте заноки ардуино, пока что я только начинающий, но уже много что знаю и понимаю. В стартовом наборе давался 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("принимается только однозначное число!");
       }  
}

 

 

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Чего пытаетесь получить-то?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

а если изменить на вот так:
 

 Serial.print("значение - ");
 Serial.print(ch);
 Serial.println(" установлено");

 

artemka_60
artemka_60 аватар
Offline
Зарегистрирован: 05.11.2018

Хорошо, попробую напишу.

 

artemka_60
artemka_60 аватар
Offline
Зарегистрирован: 05.11.2018

Да, спасибо большое, больше не барахлит!

 

Max_Ness
Offline
Зарегистрирован: 04.11.2018

поменяй на

Serial.println("значение: " + ch + " установлено");

 

artemka_60
artemka_60 аватар
Offline
Зарегистрирован: 05.11.2018

Спасибо!

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Max_Ness пишет:

поменяй на

Serial.println("значение: " + ch + " установлено");


Можно и так, но если сжимать память, то не сработает, а так будет работать:
 

Serial.print(F("значение - "));
Serial.print(ch);
Serial.println(F(" установлено"));

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

А Ардуино еще и память умеет сжимать?

(вроде бы уж дальше сжимать некуда. Разумеется, если не вспоминать о предшествующих поколениях микроконртроллеров с 256- байтами оперативной памяти)