Создание скетча

Тема в разделе "Arduino & Shields", создана пользователем Artclonic, 4 янв 2018.

  1. Artclonic

    Artclonic Гик

    170/16 = это примерно 10....
    Как хорошо было в екселе и LPT портом - проанализировал массив ячеек в зависимотсти от содержимого ячейки зажег пином свето диод... Тут как то все сложно...
    Может с чего то внешнего можно считывать? C CD??? Мне самый подходящий вариант....
     
  2. DIYMan

    DIYMan Guest

    Давайте ещё раз вводные, которые вам нужны. Зачем матрица, я не пойму? Если вы хотите сделать что-то вроде микропрограммы - тогда матрица не нужна, можно держать микропрограмму в EEPROM или во флеше, или на SD - и грузить оттуда её части по мере необходимости.

    Ок, пусть вам нужна эта матрица. Во-первых, я упоминал про упаковку данных. Во-вторых - её можно (и нужно) поместить во флеш (PROGMEM в помощь), и оттуда вычитывать нужные куски, а не всю матрицу в оперативке держать.
     
  3. Artclonic

    Artclonic Гик

    Задача
    Есть массив (он с екселя копируется ), соответственно - матрица, массив или как угодно..
    У него определенное кол-во строк и ячеек...
    Нужно прочитать данный массив (этот массив должен загружаться, т.к. он разный) Но у него одни и те же внутренние элементы к примеру с 1 до 5. При чтении данного массива к примеру слево на право каждую строчку, в зависимости от элемента зажигать соответствующий светодиод (просто массивы большие предполагаются к примеру 250 на 350).
     
  4. DIYMan

    DIYMan Guest

    Вопрос: зачем загружать такой большой массив? Вы никак не поймёте, что я хочу до вас донести: пересмотрите подход к задаче. Ок, допустим, надо таки загружать такой массив из программы в ардуину. Посылайте его через Serial, на стороне ардуины - складывайте на SD. Потом - читайте с SD по мере необходимости (высчитывая, например, смещение в файле), тогда незачем будет держать весь массив в оперативке.
     
  5. Artclonic

    Artclonic Гик

    Мне не надо загружать в ардуину, мне надо что б считывалось ( отрабатывалось) откуда нибудь (к примеру с карты) Но чтоб имелась возможность этот массив данных менять. А на SD я его запишу в текстовом файле например или как там надо, так и запишу.
     
  6. DIYMan

    DIYMan Guest

    Ну так и делайте - либо в PROGMEM загонять, либо с SD читать - задача тривиальная, примеров кучу, даже в поставке Arduino IDE, пункт меню "Файл->Примеры".
     
  7. Artclonic

    Artclonic Гик

    Да я просмотрел несколько примеров еще в начале написания этого скетча.
    Я понимаю
    -как работать с CD картой (как подключать, какую библиотеку, куда подключать)
    -я понимаю как прочитать файлик
    -как записать что то на карту все это вижу
    А как читать массив (или таблицу записанную к примеру в txt файле) таких примеров не нашел. Если это упростит, то я могу наверное вообще весь массив в один столбец сделать (указав "концы" строк каким нибудь специальным символом...
    Прошу помощи, дайте пример. А я смышленный додумаю. Без примера мне не реально...

    Или вот с использованием PROGMEM почти готовый код? А дляфлеш памяти можно использовать CD карту?
    Код (C++):
    #include <avr/pgmspace.h>
    // сохраняем несколько беззнаковых целых чисел
    const PROGMEM  uint16_t charSet[]  = { 65000, 32796, 16843, 10, 11234};
    // сохраняем несколько символов
    const char signMessage[] PROGMEM  = {"I AM PREDATOR,  UNSEEN COMBATANT. CREATED BY THE UNITED STATES DEPART"};
    unsigned int displayInt;
    int k;    // переменная-счечтик
    char myChar;
    void setup() {
      Serial.begin(9600);
      while (!Serial);
      // Тут размещаем настройки — их понадобится запустить всего раз.
      // Повторно считываем 2-байтное целое:
      for (k = 0; k < 5; k++)
      {
        displayInt = pgm_read_word_near(charSet + k);
        Serial.println(displayInt);
      }
      Serial.println();
      // Повторно считываем символ:
      int len = strlen_P(signMessage);
      for (k = 0; k < len; k++)
      {
        myChar =  pgm_read_byte_near(signMessage + k);
        Serial.print(myChar);
      }
      Serial.println();
    }
    void loop() {
      // Здесь размещаем главный код, который будет постоянно повторяться:
    }
     
    Последнее редактирование: 25 янв 2018
  8. Artclonic

    Artclonic Гик

    Вот у меня есть 800 руб, готов заплатить за написания части кода, считывания (с соответствующим зажиганием светодиодов) значений с файла CD.
     
  9. b707

    b707 Гуру

    В любой библиотке работы с экраном посмотрите, для примера. вывод картинок. Алгоритм там очень похож на то, что вам нужно - программа читает матрицу картинки из флеша или из файла и по значениям прочитанных байт "зажигает" пиксели на экране.
     
  10. Artclonic

    Artclonic Гик

    Скажите как называется библиотека?
    Ну мож 1000 р наскребу - помогите написать
     
    Последнее редактирование: 25 янв 2018
  11. b707

    b707 Гуру

  12. Artclonic

    Artclonic Гик

    Разместил в теме "закажу проет" (буду год разбираться с этим, тут с массивами 2 недели разбирался... измучился...