нужна помощь с кодом

komaxa
Offline
Зарегистрирован: 20.03.2016

Народ и снова к вам за помощью, имеется скетч написан для сегментного индикатора, но у меня его нет этого индикатора,  а есть 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
Offline
Зарегистрирован: 31.12.2015
#include <LiquidCrystal.h>

LiquidCrystal lcd(7, 8, 9, 10, 11 , 12);

void setup() { 
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("Test");
}

void loop() { }
komaxa
Offline
Зарегистрирован: 20.03.2016

Клапауций 322 чтото не работает (

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

komaxa пишет:

Клапауций 322 чтото не работает (

подожди - сейчас я тебя прикую к батарее, а сам полезу в инеты читать https://www.arduino.cc/en/Tutorial/HelloWorld и всё заработает.

komaxa
Offline
Зарегистрирован: 20.03.2016

боже откуда столько агрессии ? Я  просто спросил помощи !!!

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

komaxa пишет:

боже откуда столько агрессии ? Я  просто спросил помощи !!!

не дёргайся - всё будет работать.

komaxa
Offline
Зарегистрирован: 20.03.2016

Клапауций 322 проходи лесом милый человек!!!

Sindbad
Offline
Зарегистрирован: 08.12.2015

komaxa пишет:

Клапауций 322 проходи лесом милый человек!!!

Зря Вы так, он дело говорит. Экран к Ардуино подключили?

komaxa
Offline
Зарегистрирован: 20.03.2016

Sindbad Экран  работает, просто не могу понять почему перебор цифр не идет( 

почему зря ? я знаю что я полный ноль в программировании, но говорить мне иди гугли !! как послать куда то(  я задал вопрос на профильном форуме, и хочу помощи а не вали отсюда ищи сам!!

Alexey_A
Offline
Зарегистрирован: 01.05.2015

komaxa, Вам дали пример использования индикатора 1602. Это это не Ваша програма (скетч), это кусочек програмы  отвечающий за связь с индикатором.

Как и везде, на этом форуме есть свои  традиционные правила. В этом разделе оказывается помощь на уровне небходимом человеку который програмирует сам, Вы её уже получили, безвозмездно.

Если Вам надо чтобы Вам поправили програмиу без вашего участия, с такими задачами здесь принято обращаться в раздел "ищу исполнителя"  за возмездной помощью.

Вы далеко не первый, кто хочет безвозмездно получить услуги програмиста, такое происходит почти ежедневно но здесь такое не принято, и  часто вызывает резкую реакцию. Хотя, может случайно кто и поможет.

alex_r61
Offline
Зарегистрирован: 20.06.2012

Отчего не помочь, вот ткнул пальцен наугад.

http://lesson.iarduino.ru/page/urok-5-vyvodim-pokazaniya-potenciometra-n...

komaxa попробуйте, если и это не пойдёт, тогда к шаману. На этот дисплей столько инфы и примеров, что ...

Sindbad
Offline
Зарегистрирован: 08.12.2015

komaxa пишет:

Sindbad Экран  работает, просто не могу понять почему перебор цифр не идет( 

Подозреваю, что экран еще не подключен. У контроллера экрана шестнадцать выводов, из них шесть нужны для передачи информации. То, что Вы не написали, какие сигнальные выводы экрана к каким выводам Ардуины подключены, наводит на мысль, что с подключением экрана не все гладко.

komaxa пишет:

почему зря ? я знаю что я полный ноль в программировании, но говорить мне иди гугли !! как послать куда то(  я задал вопрос на профильном форуме, и хочу помощи а не вали отсюда ищи сам!!

Во-первых Вас послали не в гугл, а дали ссылку на статью для новичков. Цинизм ссылки в том, что статья на английском. Ну так это специфика профильлных форумов, как и хотели.

Вот подробная статья на русскоязычном ресурсе: 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

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

Sindbad пишет:

Цинизм ссылки в том, что статья на английском.

это не цинизм, а фашизм, русофобия и практическая бендеровщина - русскоязычные россияне должны страдать от языка их потенциального термоядерного противника.

Sindbad
Offline
Зарегистрирован: 08.12.2015

Клапауций 322 пишет:

Sindbad пишет:

Цинизм ссылки в том, что статья на английском.

это не цинизм, а фашизм, русофобия и практическая бендеровщина - русскоязычные россияне должны страдать от языка их потенциального термоядерного противника.

Слишком мягко. Надо так:  ....должны уметь говорить на языке будущих оккупантов, либо сдохнуть.

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

Sindbad пишет:

должны уметь говорить на языке будущих оккупантов, либо сдохнуть.

тогда - на китайском.

std
Offline
Зарегистрирован: 05.01.2012

Нельзя просто так взять и не любить Китай.

vvadim
Offline
Зарегистрирован: 23.05.2012

какие то худые они на рисе одном...

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

vvadim пишет:

какие то худые они на рисе одном...

придут в Сибирь - тогда отожрутся русскими(?) пельменями, будут как среднестатистическая российская красавица выглядеть - пенёк на ножках.

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

std пишет:

Нельзя просто так взять и не любить Китай.

Duino A.R.
Offline
Зарегистрирован: 25.05.2015

vvadim пишет:

какие то худые они на рисе одном...


Да ладно. Чисто красотка! Только вот глаза не веселые. Видать, и житуха у нее в хунвейбинии не ахти...