Закажу скетч

Тема в разделе "Закажу проект", создана пользователем Artclonic, 25 фев 2021.

  1. Artclonic

    Artclonic Гик

    2000 рублей

    Ардуино Мега
    6 светодиодов
    1 кнопка
    SD карта

    Есть небольшой код для считывания с SD карты тестового файла. по значением тестового файла зажигаются светодиоды на время в соответствии со значением. Обработка (чтение) происходит построчно.
    Структура тестового файла: (это 7 столбцов со значениями).
    1 200 300 0 200 150 50
    2 0 200 150 200 350 50
    3 20 170 20 0 150 500

    Первый столбец - идентификатор строки.
    Второй - шестой столбец - значение времени на которое зажигаются светодиоды в млсек.
    Каждое значение обрабатывается по нажатию кнопки.
    Это все реализовано. Все работает.

    Что нужно доработать.
    1. Выводить в порт значение идентификатора строки при обработке очередной строки.
    2. Подключить весы №1 через ацепешку hx711.
    3. Подключить весы №2 через hx711.
    4. Подключить серву.
    5. Перед обработкой строки проверить значение с весов №2, которое должно быть не ниже заданного значения в коде (сделать, что б можно было менять в коде). Если значение больше, то продолжать, если меньше, то вывести в порт "ERROR2". Продолжение по нажатию кнопки, естественно опять с проверкой значения весов2.
    5. Заменить обработку значений второго столбца (это был ранее светодиод№1, но это не важно) на следующий алгоритм:
    Включить серву на определенный угол (задается в коде).
    Выключить серву (вернуть на начальное состояние), только после того, как значение весов №1 достигнет заданного значения (значение в текстовом файле второй столбец).
    Далее продолжать обработку .следующих значений светодиодов, так как сейчас реализовано.

    Вывести в порт "окончание обработки строки", соответственно обработка следующей строки по нажатию кнопки.

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

    Вот девственный код....

    Код (C++):
    #include <SPI.h>
    #include <SD.h>


    #define UART_BAUDRATE     9600

    #define FILE_NAME         "COLOR.TXT"

    #define SD_CS             10            //выбор SD
    #define KEY               9             //кнопка на землю
    #define LED1              4
    #define LED2              5
    #define LED3              6
    #define LED4              7
    #define LED5              8
    #define LED6              11


    File file;

    const uint8_t led[] = { LED1, LED2, LED3, LED4, LED5, LED6 };

    void setup() {
      Serial.begin(UART_BAUDRATE);
      pinMode(KEY, INPUT_PULLUP);           //подтяжка
      for (uint8_t i = 0; i < sizeof(led); i++)
        pinMode(led[i], OUTPUT);            //светодиоды

      Serial.print("Initializing SD card... ");
      if (!SD.begin(SD_CS)) {               //карта
        Serial.println("failed! Stop.");
        while (1);
      }
      Serial.println("ok.");

      file = SD.open(FILE_NAME);            //открываем файл
      if (file) {
        Serial.println();
        Serial.println("Reading " FILE_NAME ":");

        char buff[6];
        char *str = buff;
        while (file.available()) {          //читаем в буфер
          static uint8_t i, nr;
          *str = file.read();
          if (*str++ < '0') {
            str = buff;
            uint16_t t = atoi(buff);        //преобразуем в цифру
            if (!i++) {
              nr = t;
              while (digitalRead(KEY));     //ожидаем кнопку
            }
            else {                          //светодиоды
              digitalWrite(led[i - 2], HIGH);
              while (t--)
                delay(1);
              digitalWrite(led[i - 2], LOW);
              if (i >= sizeof(led) + 1) {   //конец строки
                i = 0;
                file.read();
                Serial.print("Обработан ");
                Serial.println(nr);
              }
            }
          }
        }
        file.close();                       //закрываем файл
        Serial.println("end");
      }
      else
        Serial.println("error opening " FILE_NAME);
    }


    void loop() {
    }
     
    Последнее редактирование: 26 фев 2021
  2. Artclonic

    Artclonic Гик

    Странно... Ни одного отклика...
     
  3. Airbus

    Airbus Радиохулиган Модератор

    Onkel сделает. Он все может
     
  4. b707

    b707 Гуру

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

    Artclonic Гик

    Где же ты? Oncel...
     
  6. SergeiL

    SergeiL Оракул Модератор

    Так 23-е февраля только прошло, неделю, как минимум ждать нужно. :)
     
  7. Artclonic

    Artclonic Гик

    Что ж ты будешь делать....Не везет, так, не везет....
    А там 8 марта не за горизонтом...
    Останусь я чую... без кода...
     
  8. Artclonic

    Artclonic Гик

    готов 2500 руб...
     
  9. sser

    sser Гик

    Могу сделать всё заново(весь скетч) , но через неделю .
    Самый сложный вопрос , это проверка скетча , кто его будет проверять?
    Если я буду проверять , то мне нужны комплектующие и дополнительно 2000р. .
     
  10. Artclonic

    Artclonic Гик

    Проверять буду я
     
  11. b707

    b707 Гуру

    а кто будет проверять вас?
     
    sser и vvr нравится это.
  12. sser

    sser Гик

    Это точно ... обычно такая история заканчивается перепроверкой проверенного. :)

    В принципе можно проверить в Протеусе.
    Были сомнения с SD картой.
    Но вчера я их развеял ... Создал образ карты с записанным туда текстовым файлом , вроде текст читает в терминал Протеуса.
     
    Последнее редактирование: 1 мар 2021
  13. Artclonic

    Artclonic Гик

    С какой целью Вы это сделали?
    Вы беретесь?
     
  14. sser

    sser Гик

    Да , но проверять буду сам.
     
  15. Artclonic

    Artclonic Гик

    На какую почту отправить алгоритм?(только что написал для полного понимания)
    Могу и предоплату...