нужна помощь с кодом
- Войдите на сайт для отправки комментариев
Чт, 24/03/2016 - 15:51
Народ и снова к вам за помощью, имеется скетч написан для сегментного индикатора, но у меня его нет этого индикатора, а есть lcd 1602a, помогите решить проблему с кодом чтоб он работал на Lcd 1602A вот собственно сам скетч
uint8_t buf[8] = { 0 }; // байт с информацией о «нажатой» клавише void setup() { Serial.begin(9600); // Устанавливаем скорость соединения pinMode(2, OUTPUT); // G pinMode(3, OUTPUT); // F pinMode(4, OUTPUT); // E pinMode(5, OUTPUT); // D pinMode(6, OUTPUT); // C pinMode(7, OUTPUT); // B pinMode(8, OUTPUT); // A pinMode(9, OUTPUT); // D4 pinMode(10, OUTPUT); // D3 pinMode(11, OUTPUT); // D2 pinMode(12, OUTPUT); // D1 // Так как модуль сегментных индикаторов имеет общий анод, то для того, чтобы // светился сегмент, вывод Arduino должно быть в высокоимпедансном состоянии // и наоборот // Выключаем все сегменты: digitalWrite(12, HIGH); digitalWrite(11, HIGH); digitalWrite(10, HIGH); digitalWrite(9, HIGH); delay(2000); // Пауза, чтобы «клавиатура» успела определиться в системе } void loop() { int dig1, dig2, dig3, dig4; // Цифры, которые будут последовательно вводиться int keys[10] = { 39, 30, 31, 32, 33, 34, 35, 36, 37, 38 }; // Массив с ASCII кодами цифер от 0 до 9 соответственно // Перебор с 0000 до 9999: for(dig1=0; dig1<10; dig1++) { for(dig2=0; dig2<10; dig2++) { for(dig3=0; dig3<10; dig3++) { for(dig4=0; dig4<10; dig4++) { pressKey(keys[dig1]); pressKey(keys[dig2]); pressKey(keys[dig3]); pressKey(keys[dig4]); pressKey(40); // Клавиша Enter // Текущий пароль будет отображаться в течение примерно 15-ти секунд (чуть больше времени задержки ввода) for(int i=0; i<1200; i++) { digLED(12, dig1); digLED(11, dig2); digLED(10, dig3); digLED(9, dig4); } } } } } } void pressKey(int dig) // Функция ввода { buf[2] = dig; Serial.write(buf, 8); // Нажать клавишу buf[0] = 0; buf[2] = 0; delay(20); Serial.write(buf, 8); // Отпустить клавишу delay(300); } // Возможно, существуют библиотеки для сегментных индикторов, но мне не захотелось с ними разбираться, // поэтому набросал свой алгоритм обхода сегментов индикатора void digLED(int pin, int dig) // Функция отображения цифер на индикаторе { digitalWrite(pin, LOW); switch(dig) { case 0: digitalWrite(8, LOW); digitalWrite(7, LOW); digitalWrite(6, LOW); digitalWrite(5, LOW); digitalWrite(4, LOW); digitalWrite(3, LOW); digitalWrite(2, HIGH); break; case 1: digitalWrite(8, HIGH); digitalWrite(7, LOW); digitalWrite(6, LOW); digitalWrite(5, HIGH); digitalWrite(4, HIGH); digitalWrite(3, HIGH); digitalWrite(2, HIGH); break; case 2: digitalWrite(8, LOW); digitalWrite(7, LOW); digitalWrite(6, HIGH); digitalWrite(5, LOW); digitalWrite(4, LOW); digitalWrite(3, HIGH); digitalWrite(2, LOW); break; case 3: digitalWrite(8, LOW); digitalWrite(7, LOW); digitalWrite(6, LOW); digitalWrite(5, LOW); digitalWrite(4, HIGH); digitalWrite(3, HIGH); digitalWrite(2, LOW); break; case 4: digitalWrite(8, HIGH); digitalWrite(7, LOW); digitalWrite(6, LOW); digitalWrite(5, HIGH); digitalWrite(4, HIGH); digitalWrite(3, LOW); digitalWrite(2, LOW); break; case 5: digitalWrite(8, LOW); digitalWrite(7, HIGH); digitalWrite(6, LOW); digitalWrite(5, LOW); digitalWrite(4, HIGH); digitalWrite(3, LOW); digitalWrite(2, LOW); break; case 6: digitalWrite(8, LOW); digitalWrite(7, HIGH); digitalWrite(6, LOW); digitalWrite(5, LOW); digitalWrite(4, LOW); digitalWrite(3, LOW); digitalWrite(2, LOW); break; case 7: digitalWrite(8, LOW); digitalWrite(7, LOW); digitalWrite(6, LOW); digitalWrite(5, HIGH); digitalWrite(4, HIGH); digitalWrite(3, HIGH); digitalWrite(2, HIGH); break; case 8: digitalWrite(8, LOW); digitalWrite(7, LOW); digitalWrite(6, LOW); digitalWrite(5, LOW); digitalWrite(4, LOW); digitalWrite(3, LOW); digitalWrite(2, LOW); break; case 9: digitalWrite(8, LOW); digitalWrite(7, LOW); digitalWrite(6, LOW); digitalWrite(5, LOW); digitalWrite(4, HIGH); digitalWrite(3, LOW); digitalWrite(2, LOW); break; } delay(3); digitalWrite(pin, HIGH); }
Клапауций 322 чтото не работает (
Клапауций 322 чтото не работает (
подожди - сейчас я тебя прикую к батарее, а сам полезу в инеты читать https://www.arduino.cc/en/Tutorial/HelloWorld и всё заработает.
боже откуда столько агрессии ? Я просто спросил помощи !!!
боже откуда столько агрессии ? Я просто спросил помощи !!!
не дёргайся - всё будет работать.
Клапауций 322 проходи лесом милый человек!!!
Клапауций 322 проходи лесом милый человек!!!
Зря Вы так, он дело говорит. Экран к Ардуино подключили?
Sindbad Экран работает, просто не могу понять почему перебор цифр не идет(
почему зря ? я знаю что я полный ноль в программировании, но говорить мне иди гугли !! как послать куда то( я задал вопрос на профильном форуме, и хочу помощи а не вали отсюда ищи сам!!
komaxa, Вам дали пример использования индикатора 1602. Это это не Ваша програма (скетч), это кусочек програмы отвечающий за связь с индикатором.
Как и везде, на этом форуме есть свои традиционные правила. В этом разделе оказывается помощь на уровне небходимом человеку который програмирует сам, Вы её уже получили, безвозмездно.
Если Вам надо чтобы Вам поправили програмиу без вашего участия, с такими задачами здесь принято обращаться в раздел "ищу исполнителя" за возмездной помощью.
Вы далеко не первый, кто хочет безвозмездно получить услуги програмиста, такое происходит почти ежедневно но здесь такое не принято, и часто вызывает резкую реакцию. Хотя, может случайно кто и поможет.
Отчего не помочь, вот ткнул пальцен наугад.
http://lesson.iarduino.ru/page/urok-5-vyvodim-pokazaniya-potenciometra-n...
komaxa попробуйте, если и это не пойдёт, тогда к шаману. На этот дисплей столько инфы и примеров, что ...
Sindbad Экран работает, просто не могу понять почему перебор цифр не идет(
Подозреваю, что экран еще не подключен. У контроллера экрана шестнадцать выводов, из них шесть нужны для передачи информации. То, что Вы не написали, какие сигнальные выводы экрана к каким выводам Ардуины подключены, наводит на мысль, что с подключением экрана не все гладко.
почему зря ? я знаю что я полный ноль в программировании, но говорить мне иди гугли !! как послать куда то( я задал вопрос на профильном форуме, и хочу помощи а не вали отсюда ищи сам!!
Во-первых Вас послали не в гугл, а дали ссылку на статью для новичков. Цинизм ссылки в том, что статья на английском. Ну так это специфика профильлных форумов, как и хотели.
Вот подробная статья на русскоязычном ресурсе: http://wiki.amperka.ru/%D1%81%D1%85%D0%B5%D0%BC%D1%8B-%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D1%8F:%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0
Цинизм ссылки в том, что статья на английском.
это не цинизм, а фашизм, русофобия и практическая бендеровщина - русскоязычные россияне должны страдать от языка их потенциального термоядерного противника.
Цинизм ссылки в том, что статья на английском.
это не цинизм, а фашизм, русофобия и практическая бендеровщина - русскоязычные россияне должны страдать от языка их потенциального термоядерного противника.
Слишком мягко. Надо так: ....должны уметь говорить на языке будущих оккупантов, либо сдохнуть.
должны уметь говорить на языке будущих оккупантов, либо сдохнуть.
тогда - на китайском.
Нельзя просто так взять и не любить Китай.
какие то худые они на рисе одном...
какие то худые они на рисе одном...
придут в Сибирь - тогда отожрутся русскими(?) пельменями, будут как среднестатистическая российская красавица выглядеть - пенёк на ножках.
Нельзя просто так взять и не любить Китай.
какие то худые они на рисе одном...
Да ладно. Чисто красотка! Только вот глаза не веселые. Видать, и житуха у нее в хунвейбинии не ахти...