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

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

форматирование символьных строк

...
uint32_t i = 0;
double s = 1.2345;
char msg[ 40 ];
sprintf( msg, "%d => %8.2f", i, s );
Serial.println( msg ); 
...
 

В итоге получим вывод:

1000 => ?

Симулятор Arduino

Arduino Tinkercad - симулятор Arduino (не только программного кода, но и схемотехники проекта) от компании Autodesk - мэтра CAD-систем, владельца торговой марки AutoCad.

Иногда, когда нет под рукой живого Arduino, это быстрый способ набросать проект. А иногда это - более быстрый способ отмакетировать проект, чем собирать его на проводах на макетке. 

Оптимизировать код "Ворота" придумать протокол

Я только начинаю разбираться, так как не нашел не чего подобного, делаю сам. Вроде работает, но иногда появляются не понятки. Управление калиткой и воротами. Ворота открываются и пульта по радио каналу, так же включается фонарь на столбе. Калитка открывается с наружи RFID меткой. Из внутри просто кнопка. Во время открытия ворот мигает лампа. Надо сделать связь с умным домом, передавать состояние калитки и ворот для охраны. Думаю что RS485 подойдет. Подскажите с протоколом? и как можно оптимизировать код?

Переключение программ кнопкой

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

Пишу программу для переключения режимов горения светодиодов кнопкой, но собранное устройство очень странно горит: сначала мигающий жёлтый(по плану), потом я нажимаю кнопку и переключается программа на горение жёлтого, красного и зелёного(тоже по плану), но потом при последющих нажатиях ничего не меняется 

помогите разобраться с прерываниями

нужно читать данные с устройства. соответственно решил использовать прерывания.

настраиваю так 

void setup() {
 DDRD &= ~_BV(2);       //порт на вход
 EICRA |= (1<<ISC01);   //вызов прерывания при изменении уровня напряжения с высокого (HIGH) на низкое (LOW)
 EIMSK |= (1<<INT0);    //разрешить прерывания INT0
}

далее по событию вызывается функция -

ISR(INT0_vect){
 read(); 
}

которая представляет собой 

Проект умного дома, соединить всё что можно ( я новичок, пришел за помощью)

Всем добрый день, вот решил  заняться небольшим проэктом, начинаю с автоматических занавесок, НАписал код но он вместо того что бы бесконечно вращаться, делает один шаг и всё.
Использую модуль ESP 8266, Изидрайвер, и просто шаговый! Что я делаю не так? Почему цикл Stepping не зацикливаеться?




// скетч для вайфай окна 
#include <ESP8266WiFi.h>
#define DIR_PIN D6
#define STEP_PIN D5
#define OPEN_W D1
#define CLOSE_W D2
#define SLIP_PIN D3

const char* ssid = "ASUS";
const char* password = "12369852";
int o = 0;

GPRS, TCP/IP, OPC

Здравствуйте! Может быть есть у кого-то опыт соединения Arduino и OPC- сервера через GPRS TCР/IP. Поделитесь опытом.

Синхронизация шаговых двигателей

Есть катушка, и есть каретка, которая подает нить на катушку для равномерного наматывания.

Т.е. Катушка делает оборот, за это время каретка двигается на толщину нити, когда доходит до конца ширины катушки, двигается в обратном направлении.

Думаю что-то вроде этого: