Первая автоматика от "Счастливчика" – на новый лад…

Главная Форумы Конструкторское бюро Автоматизация Первая автоматика от "Счастливчика" – на новый лад…

  • В этой теме 26 ответов, 3 участника, последнее обновление 1 год сделано Viacon.
Просмотр 15 сообщений - с 1 по 15 (из 27 всего)
  • Автор
    Сообщения
  • #30513
    Viacon
    Участник
    • Ответов: 190
    @viacon

    Как-то копаясь в своих загашниках набрал комплект для сборки первоначальной версии автоматики от “Счастливчика”, в дальнейшем “автоматика”. Решил собрать и подарить товарисчу по интересам… Но повторить не получилось. Не смог подключить дисплей. Через адаптер I2C он – работает,  а по 4-х проводной схеме нет. Да и в старой автоматике мне реле не надобно, т.к. отбор по пару . А управление сервой мне бы оЧЧень пригодилось. Через потенциометр, и крайне желательно с выводом угла поворота на LCD.

    В наличии:

    – LCD2004

    – arduino nano

    – плата расширения arduino nano

    – DS18020 – 2 шт

    – bmp180 (прекрасно работает с данными в скетчах от 085)

    – сервопривод

    Самому переделать скетч не получается. Если эта тема кому либо интересна, может быть кто нибудь поможет? Сразу предлагаю себя в тестеры.

    PS: фиксация температуры на спиртовой полке нужна (с кнопкой или по фиксированному времени).

    0
    #30514
    Viacon
    Участник
    • Ответов: 190
    @viacon

    Фото

    Вложения:
    Вы должны войти для просмотра вложений.
    0
    #30516
    Viacon
    Участник
    • Ответов: 190
    @viacon

    Скетч с фото

    Вложения:
    Вы должны войти для просмотра вложений.
    0
    #30560
    Viacon
    Участник
    • Ответов: 190
    @viacon

    С 15 раза удалось подключить LCD и BMP180 на шину I2C. Закоментировал старую библиотеку LCD и подключил другую библиотеку с I2C. Также закоментировал определение контактов на экране и добавил строку с включением подсветки экрана. Для понятия (мне) прокоментировал почти каждую строку в скетче. Тумблер, кнопку, реле не подключал. Вот что получилось на экране. Никак не соображу, как переделать строку с определением температуры кипения в кубе с учётом давления. Кто знает – подскажите. Кому интересно, слегка правленый скетч.

    Вложения:
    Вы должны войти для просмотра вложений.
    0
    #30564
    Viacon
    Участник
    • Ответов: 190
    @viacon

    В связи с с 4-х строчным дисплеем, опустил данные на строку ниже – получилось. Решил в верхнюю строку вывести атм давление. Для этого в этот блок:

    void loop() // блок вычислений (начало)
    {
    dps.getPressure(&Pressure); // чтение показаний барометра
    lcd.setCursor(6, 0); // установка курсора на 1 поз. 1 строки
    lcd.print(Pressure)/133.3
    lcd.setCursor(0, 1); // установка курсора на 1 поз. 2 строки
    lcd.print(“Td:”); // вывод на экран “Td”
    lcd.print(78.91 -(780-Pressure/133.3)*0.038); // вывод темп-ры кипения спирта при данном давлении
    lcd.setCursor(0, 2); // установка курсора на 1 поз. 3 строки

    вставил эти 2 строки:

    lcd.setCursor(6, 0); // установка курсора на 1 поз. 1 строки
    lcd.print(Pressure)/133.3

    Выскочила ошибка:

    D:\My Documents\Arduino\RK_control-1\RK_control-1.ino: In function ‘void loop()’:

    RK_control-1:69: error: expected ‘;’ before ‘lcd’

    lcd.setCursor(0, 1); // установка курсора на 1 поз. 2 строки

    ^

    exit status 1
    expected ‘;’ before ‘lcd’ – у кого нибудь есть мысли?

    0
    #30565
    skalinas
    Участник
    • Ответов: 441
    @skalinas

    Т куба от давления.

    По ошибке, поставь точку с запятой.

    Вложения:
    Вы должны войти для просмотра вложений.
    1+
    #30568
    Viacon
    Участник
    • Ответов: 190
    @viacon

    По ошибке, поставь точку с запятой.

    Поставил,  вылезла шестизначная цифра. Сделал так: lcd.print((Pressure)/133.3); –  получил 773,6. Вроде нормально. Спасибо.

    По табличке – посмотрю обязательно.

    0
    #30573
    skalinas
    Участник
    • Ответов: 441
    @skalinas

    Формулы лучше делать отдельно. Результат вычисления присваивать переменным и “их” выводить на экран, а не вычислять значения при выводе на экран.

    2+
    #30574
    Viacon
    Участник
    • Ответов: 190
    @viacon

    Формулы лучше делать отдельно

    понял

    0
    #30581
    Viacon
    Участник
    • Ответов: 190
    @viacon

    Почему вместо букв и цифр кракозябры???? Выложил рабочий скетч, а сейчас он уже с кракозябрами???? и все скетчи на основе начальной прошивке с кракозябрами….

    Другие скети и примеры из библиотек – всё нормально (

    через час – всё нормально, это что??

    0
    #30588
    Viacon
    Участник
    • Ответов: 190
    @viacon

    Формулы лучше делать отдельно

    так:

    void setup()
    {
    float Pat=((Pressure)/133.3); давление в мм
    float Td=(78.91 -((780-Pressure)/133.3)*0.038); температура кипения спирта при данном давления из скетча Счастливчика
    float Tat=(Thermometer2+((760-Pressure)/133.3)*0.038);
    }

    void loop()
    {
    lcd.print Pat; или так – lcd.print (Pat);
    lcd.print Td; или так – lcd.print (Td);
    lcd.print Tat; или так – lcd.print (Tat);
    } …..?? или лучше объявить переменные до  void setup() ?

    0
    #30591
    Sergey_r
    Участник
    • Ответов: 2517
    @serjrv

    Переменные используемые в разных функциях программы объявляют отдельно, т.е. до setup().
    В теле функции, объявляются только переменные используемые конкретно в функции где их объявили, в других функциях они будут не видны.

    Так: lcd.print(Pat); и ни какого пробела перед скобками. Хотя лучше конечно через printf, т.е. с конкретным форматированием количество знаков после запятой, погуглите как.

    Но чет я не догоняю, как можно что то писать, в надежде на работоспособность, не зная даже основ Си?

    0
    #30597
    skalinas
    Участник
    • Ответов: 441
    @skalinas

    lcd.print(Pat,1); так будет 1 знак после запятой

    lcd.print(Pat,2); так 2 знака

    0
    #30601
    Sergey_r
    Участник
    • Ответов: 2517
    @serjrv

    lcd.print(Pat,1); так будет 1 знак после запятой lcd.print(Pat,2); так 2 знака

    Ардуиновский print() использует именно стандартный printf(), так уж лучше сразу к стандартному привыкнуть. А то перейдет человек на нормальную среду и стандартные сишные либы, и будет удивлен отсутствием print().

    0
    #30634
    Viacon
    Участник
    • Ответов: 190
    @viacon

    перейдет человек

    Спасибо Сергей за веру в человека. Но… не перейду. Поздно уже… Вы добрый человек. Мне бы эту темку добить.

    Вам также большое спасибо ))).

    0
Просмотр 15 сообщений - с 1 по 15 (из 27 всего)
  • Для ответа в этой теме необходимо авторизоваться.