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

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

Помогите с семи-сегментным четырёх-разрядным индикатором

Вообщем идея такая: Ардуино считывает с датчика температуру и разбивает на десятки и единицы. Потом выводит на дисплей.

А проблема такая: Выводить выводит, НО число градусов мигают, а значок градуса не мигает. Надо чтобы вообще ничего не мигало!!!

Помогите пожалуйста!!!

Ниже код скетча.

 

Обмен между R3 ATmega2560 + ESP8266

Имеется вот такая плата:

Передача информации из ESP8266 в mega2560 понятна (например моргание лампочкой из web браузера). А вот чтоб например состояние контакта (геркон на окне) из mega2560 передать в esp8266 для дальнейшего отображения в браузере не понятно как. Гугл молчит по этому поводу. Так же есть 3 датчика влажности, подключенные к mega2560, как всё это передать в чип esp8266 непонятно... 

 

 

DS18B20 (нужна помощь)

Помогите, есть 2 датчика DS18B20 все работает, но нет минусового значения никак не получается

подскажите как можно обнулить переменную

есть массиы

 byte celoe[8]={0,0,0,0,0,0,0,0}; 

его надо обнулять при каждом проходе цикла

но сейчас он 8 элементов, а есть будет 80..800 то смотрится это страшновать

ВОПРПОС: можно ли (С и ардуина могут ли?) обявить и обнулить массив такой записью?

 byte celoe[8]={0}; 

???

проблема при коннекте PubSubClient

Если плата ардуино соединена по usb с компьютером, все работает, как нужно. А если отсоединить usb, то при соединении mqtt(25 строка), ардуино виснет и срабатывает ватчдог. Как буд-то не срабатывает таймаут подключения. в PubSubClient.h изменен таймаут на 3с.

Arduino mega2560

загружен такой скетч:

Выполнения события в цикле один раз

Доброго времени суток форумчане!

Прошу помощи, есть ардуинка и ИК датчик расстояния.
Задача сделать счетчик, который засчитывает приближение предмета на 10 см к датчику. 

Я пошел простым путем, и написал код с простым условием  if ( a == 10 ) то прибавляем к счетчику единицу.

Но проблема в том, что когда предмет удаляется от датчика, он опять засчитывает +1, а это не верно.

Подскажите, как написать условие, чтобы счетчик засчитывал +1 только при приближении, и не засчитывал при удалении предмета от датчика ? Спасибо. 

У новичка проблема

Есть RGB светодиод который нужно заставить красиво переливатся. Я написал вот такой скетч, который по идее должен изменять яркость всех трёх цветов от 0 до 255, и если какой-то цвет имеет пороговую яркость, то она начинает менятся в обратную сторану, но когда значение перемненной отвечающей за яркость синего цвета становится 0, то сразу же меняет своё значение на 255, помогите пожалуйста.

почему оператор присвоение не срабатывает?

#include <iarduino_DHT.h>   
iarduino_DHT sensor(2);     

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4);

int btn1=0;
int btn2=0;
int lamp=0;
int ld=1;
int pinrele=8;

void setup(){
  Serial.begin(9600);       
  delay(1000);              
  //Моды пинов
  pinMode(pinrele,OUTPUT);
  pinMode(3,INPUT);
  pinMode(10,INPUT);
  //моды пинов
  //экран
  lcd.init(); 
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0,1);
  lcd.print("Pow");
  //экран
}

Помогите порулить тиристором.

Имеем, дуину нану :-).
Синхронизируем ее оптопарой с сетью 220в.
Сдвигаем через миллис и резистор на определенный угол. И все вроде работает, только сдвиг очень произвольный , разница до 2мс доходит.

Скетч
#define sync 3
unsigned long TimeShift=0;
unsigned long CurrentMillis=0;
void setup (){
pinMode(8,OUTPUT);
pinMode(sync,INPUT_PULLUP);
}
void loop(){
TimeShift=analogRead(0);
if(digitalRead(sync)==0)
{if(millis()-CurrentMillis>=TimeShift/125){digitalWrite(8,1); }
} else{CurrentMillis=millis();
digitalWrite(8,0);}
}

4х канальный ШИМ на UNO 100ГЦ

Необходимо 4 выхода ШИМ с частотой 100 ГЦ.