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

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

Atmega рандомно зависает.

Доброго дня всем! Собрал устройство для управления подсветкой от ATX блока питания. В процессе работы контроллер рандомно зависает через через разные промежутки времени (30 минут, 6 часов, 2 дня и т.д.). Зависание может произойти и ночью, когда блок выключен, и днем.


Шилд L293D

Здравствуйте. Пожалуйста подскажите в чем проблема.
Имеется задача: необходимо осуществить управление 4 двигателей постоянного тока с 3 кнопок, через шилд L293D.

Программа для записи данных в EEPROM

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

Подскажите как можно реализовать такую задачу. Есть устройство на ардуине atmega 328p подключается к ПК через ЮСБ. Мне надо написать отдельную программу для Windows, через которую сохранялись данные в EEPROM.

Я раньше работал с COM порт, получал и отправлял данные на МК через программу реализованную на Делфи. А вот как в EEPROM записать, я не знаю. 

 

Спасибо!

Получение типа переменной

Всем привет! У меня возникла задача, решить которую я не смог. Сюда ли я обратился, то что пишу код в PlatformIO IDE для Arduino Mega? Задача состояла в определении типа переменной в аргументе метода класса. Если, например, аргумент был типом int16_t, то подставлялась бы переменная-член класса такого же типа и аргумент копировался бы в эту переменную. Ну и соответственно с другими типами.

Счётчик импульсов

Здравствуйте. Пытался найти скетч для подсчёта прямоугольных импульсов и вывода их на монитор порта arduino. Помогите пожалуйста, я понятия не имею как их считать :(

Как принудительно ограничить производительность esp32?

Вот такой вот вопрос возник, друзья. Есть ли возможность принудительно уменьшить производительность и вообще энергопотребление esp32? :-)

Почему: у меня вся система(там не только esp32) запитывается от аккума 18650. Я поставил замер напруги программный и резисторный делитель-для этого замера.

задержка без delay при входе в функцию, (возможно ли)?

Доброго времени!

Собственно есть код управления модемом по uart, в нем при входящей смс команде к примеру переводиться переменная float в string и отправляется в функцию отправки сообшения.

if(strstr(command, sms_temp1)){
char tmptemp[10];
char* chartemp;
float dstmp = dstemp[0];
chartemp = dtostrf(dstmp, 5, 2, tmptemp);
sendTextMessage(chartemp);

void sendTextMessage(const char* sms)
{
delay(500);
GPRS.print(send_Sms);
GPRS.print(send_NumTel);
gprsCmdAndWaitln(send_Quote);
GPRS.print(sms);
gprsCmdAndWaitln(send_Enter);
}

датчик температуры dht11

Здравствуйте, какая есть формула для считывания температуры(не влажности) с помощью датчика температуры dht11?
Учитель дал вот такую формулу
celsius = map(((analogRead(A0)-20)* 3.04), 0, 1023, -40, 125);
но она работает как то не так, выводит значения не соответствующие температуре.

Формула из интернета float t = dht.readTemperature(); дает ответ Non

библиотека для ENC28J60 - EtherCard

Добрый день
Cтолкнулся с проблемой ArduinoNano +ENC28J60 библиотека для ENC28J60 - EtherCard
так вот так отрабатывает:
    const char *temp0;
    temp0="object=ESP_Easy_1ch_1&op=m&m=switch";
    
    //const char temp0[100] ;
    //sprintf ( temp0,100,"object=%s&op=%s&m=%s","ESP_Easy_1ch_1","m","switch");
    
    Serial.print("temp0=");
    Serial.println(temp0);

    timer = millis() + 5000;
    Serial.println();

Передача данных с коррекцией ошибок

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