Всем Привет ! современные ООП знаю очень плохо, в общих чертах JAVA и PHP, нормально Ассемблер AVR. Понадобилось ввести данные с консоли в программу. Посмотрел образцы ввода и написал следующее
#include "LedControl.h" // Подключаем библиотеку
LedControl lc=LedControl(12,11,10,1); // используемы пины ардуины для подключения, и сколько драйверов в цепочке
// pin 12 is connected to the CS (CS)(LOAD)
// pin 11 is connected to the CLK (CLK)
// pin 10 is connected to LOAD(DIN)
int a0 = 2, a1 = 5, a2 = 3, a3 = 4, a4 = 5, a5 = 1; // Здесь задаем начальное значение
void setup()
{
//Инициируем MAX7219
Serial.begin(9600); // активируем консоль
Serial.setTimeout(100); // задержка конца передачи данных
lc.shutdown(0,false);// включаем дисплей, энергосбережение
lc.setIntensity(0,8);// устанавливаем яркость (0-минимум, 15-максимум)
lc.clearDisplay(0);// очищаем дисплей
}
void loop()
{
if (Serial.available()) { //ждем когда появятся данные в консоли
long val = Serial.parseInt(); // размещаем их в переменной val, здесь ещё разбор строки идет (парсинг)
int a0=val%10; // выделяем каждое число в отдельную переменную (наши разряды экрана)
int a1=(val/10)%10;
int a2=(val/100)%10;
int a3=(val/1000)%10;
int a4=(val/10000)%10;
int a5=(val/100000)%10; // это последнее число из 6 значного
Serial.println(a0); // это для контроля, что разложение произошло верно.
Serial.println(a1);
Serial.println(a2);
Serial.println(a3);
Serial.println(a4);
Serial.println(a5);
lc.setChar(0,5,a5,false);
lc.setChar(0,4,a4,false);
lc.setChar(0,3,a3,false);
lc.setChar(0,2,a2,false);
lc.setChar(0,1,a1,false);
lc.setChar(0,0,a0,false);
}
else a0 = 2, a1 = 5, a2 = 3, a3 = 4, a4 = 5, a5 = 1; // ещё одна попытка задать дефолтные значания.
}
Но должным образом это не работает. Мне нужно, что бы программа продолжила своё выполнение. Если данные введены не будут, с данными по умолчанию. А у меня экран показывает, только то, что я ввожу в консоль.