byte digits[5] = {8, 7, 6, 5, 4};
//инициализация цифровых пинов
void setup() {
Serial.begin(9600);
//устанавливаем скорость получения информации из монитора порта
//9600 битов/сек
Serial.println("Let's work!");
for (byte i = 0; i < 5; i++){
pinMode(digits[i], OUTPUT);
}
//Вводим пины в режим вывода данных
}
void loop() {
int number = Serial.parseInt();
if (number){
Serial.print("Ваше число в десятичной СС : ");
Serial.println(number);
}
// если полученное число > 0, то обрабатываем его
if (number >= 2*2*2*2*2){
Serial.println("Слишком большое число");
delay(1000);
//исключаем слишком большие числа
}
else{
byte binary[5] = {0, 0, 0, 0, 0};
//масив для хранения числа в двоичной СС
for(int j = 4; j > -1; j--){
binary[j] = number % 2;
number /= 2;
}
/*
Переводим числа из десятичной в двоичную по правилу:
1)Последовательно выполнять деление десятичного числа и
получаемых целых частных на 2, до тех пор, пока частное
не станет равным 0.
2)Для получения ответа в двоичном коде,
необходимо записать, полученные, в результате деления
остатки, в обратном порядке.
*/
for (byte l = 0; l < 5; l++){
if (binary[l]){
digitalWrite(digits[l], HIGH);
}
//Если на позиции двоичной СС стоит 1, то включаем светодиод
}
delay(1500);
//останавливаем работу программы на 1500 мс
for (byte t = 0; t < 5; t++) {
digitalWrite(digits[t], LOW);
}
//выключаем светодиоды
}
}