Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Arduino(UNO) Tinkercad решить задание

Александр Назаренко Ученик (63), на голосовании 3 недели назад
Построить схему и написать программу «запись ASCII кода» (использовать 8 светодиодов = 1 символ). Длина кода 8 символов. Реализовать запись, отображение, сброс и проверку. Для записи кода можно использовать идею, рассмотренную в задаче 8. Для проверки следует поступить следующим образом: пусть у нас есть код, который уже записан. Мы можем сбросить этот код (светодиоды гаснут), а можем его отобразить. Если мы вновь набираем код с помощью кнопок, тогда при нажатии на кнопку “проверка” если введенный код совпадает с записанным, то светодиоды гаснут, а если нет - то загораются все.
Дано: 8 светодиодов, 8 резисторов номиналом 220 Ом и 12 резисторов номиналом 10 кОм, 12 кнопок, провода, контроллер.
Голосование за лучший ответ
Рустам Абдрашитов Мыслитель (9508) 1 месяц назад
 const int ledPins[8] = {2, 3, 4, 5, 6, 7, 8, 9}; 
const int buttonPins[8] = {10, 11, 12, 13, 14, 15, 16, 17};
int storedCode = 0;
int inputCode = 0;

void setup() {
for (int i = 0; i < 8; i++) {
pinMode(ledPins[i], OUTPUT);
pinMode(buttonPins[i], INPUT_PULLUP);
}
Serial.begin(9600);
}

void loop() {
if (!digitalRead(buttonPins[0])) {
inputCode = getInput();
delay(200);
}

if (!digitalRead(buttonPins[1])) {
checkCode();
delay(200);
}

if (!digitalRead(buttonPins[2])) {
resetCode();
delay(200);
}

displayCode(inputCode);
}

int getInput() {
int code = 0;
for (int i = 0; i < 8; i++) {
if (!digitalRead(buttonPins[i])) {
code |= (1 << i);
while (!digitalRead(buttonPins[i]));
}
}
return code;
}

void displayCode(int code) {
for (int i = 0; i < 8; i++) {
digitalWrite(ledPins[i], (code & (1 << i)) ? HIGH : LOW);
}
}

void checkCode() {
if (inputCode == storedCode) {
resetCode();
} else {
for (int i = 0; i < 8; i++) {
digitalWrite(ledPins[i], HIGH);
}
}
}

void resetCode() {
inputCode = 0;
displayCode(inputCode);
}
Александр НазаренкоУченик (63) 1 месяц назад
можешь это в wokwi/tinkercad собрать и скинуть ссылкой?
Похожие вопросы