Программирование

Вопросы по программированию Arduino.

Мерцает дисплей 128х64

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

Вот пример видео на ютубе https://www.youtube.com/watch?v=2JINHAXRKQ8

И код 

Отправка СМС с данными сенсора

Здравствуйте! 

Прошу помощи в указании на ошибки в реализации тривиальной задачи отправки смс с данными сенсора DS18b20 с использованием TinySine Shield GSM на Arduino Uno. В программировании не силён, но есть желание разобраться и реализовать этот проект для дачи. 

На данный момент: На LCD I2C экран выводится сообщение с температурой -127, что говорит о том, что контроллер не видит датчик. Сам дачтик подключён через беспаечную плату к 4 выходу.

Вывод IPAddress в HTML

Помогите, пожалуйста, разобраться:

Глобальной переменной IPAddress LOCAL_IP_ADR присваевается значение 192.168.1.79

При попытке вывести значение в HTML выводится 1325508800

При попытке поставить внутрь анкера (html-ссылки, a href=) - выводит наоборот - 79.1.168.192

Преобразование типов String HEX в INT

Всем привет!

Стоит такая задача... Имеется строка типа String, которая содержит в себе шестнадцатиричное число.

String str="C2";

или

String str="0xC2";

Как теперь можно преобразовать это значение в тип INT или BYTE, есть какое нибудь простое решение? Конвертации вида: str.toInt(); и тому подобные, ни к чему не приводят. Как правило появляется ошибка о несовместимости типов, либо результатом является НОЛЬ. Т.к. буквы не конвертируются напрямую в числа. )))

 

Ускорение функции micros()

Micros()

Возвращает количество микросекунд с момента начала выполнения текущей программы на плате Arduino. Значение переполняется и сбрасывается на ноль, приблизительно через 70 минут. На 16MHz платах Ардуино функция micros() имеет разрешение 4 микросекунды (возвращаемое значение всегда кратно 4). На 8MHz платах разрешение функции 8 микросекунд.

Как можно улучшить разрешение функции micros() до 2 или 1 микросекунды?

почему не работает *100 / 100

есть код который вроде работает

    if (getDelayTime(time_heat_start, t) >= (dt/100*p)) 
       {

а вот такой код выдает туфту

    p = p * 100;
    if (getDelayTime(time_heat_start, t) >= (dt/100*p/100)) 
       {

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

Часы 1302 и time.h

Здравствуйте, у меня имеется модуль часов ds1302, подключил, запрограмировал, но возникла одна проблема:

если в коде очень часто опрашивать модуль при помощи rtc.getTimeStr() то часы очень сильно начинают врать, 

как вариант сделал опрос раз в 60 сек, погрешность стала приемлимой, однако тогда возникают проблемы с нормальным отображением секунд ( обновляются раз в минуту). 

Расшифровка указателей

Коллеги, кто поможет расшифровать ?

*((char*)&Sensors) как это выполняется?

Вопрос по дисплею 128х64 Помогите разобраться.

Ребята, подскажите кто в теме, как програмно управлять стрелками на дисплее 12864. Перечитал библиотеку к дисплею, не могу найти как присвоить переменные массиву. Раньше стоял дисплей LCD1602, все работало, а вот с 12864 пока нет. Сами стрелки сформировал, а вот как теперь их привязать к программе, не знаю. 

Вот часть кода с 1602, он работает.

вопрос по библиотеке RotaryEncoder

здравствуйте дорогие форумчане

нашел библиотеку RotaryEncoder для работы с энкодером библиотека понравилась работой без "тормозов"

да и аналоговые выхода заняты вместо цифровых

на библиотеку сылка  https://yadi.sk/d/vtDkM8DJn6YkR

пример с библиотеки ниже