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

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

sscanf не работает float

Вот уже целый день бьюсь с функцией sscanf пытаясь прочитать значение с плав.точкой.

В результате выполнения приаттаченого кода в терминале получаю 0.00, 

Что я делаю не так?

char buf[]="gprmc,5.25";
float x;
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
  while (!Serial) {}

}

void loop() {
  // put your main code here, to run repeatedly:
sscanf(buf,"gprmc,%f",&x);
Serial.println(x);
while(1);
}

 

Нужна помощь с Arduino Mega 2560, Ethernet Shield W5100, реле и кнопка

Доброе время суток. Я новечек (по крайне мери я так считаю).

Взял код с сайта и начал лепить. В нем несколько датчиков, но пока что убрал для удобства.

Суть в том что, нужно включения реле с web (с HTML+CSS, находится на флешки) сайта и с сенсорной кнопки. С сайта включается, а вот с сенсорной кнопки проблема. Срабатывает с как будто задержкой, нужно нажать и держать или "фапать"(нажимать) нонстопом.

Пребывал код

То что я пробовал решить, но не вышло:

-Думал проблема с delay, но не в нем.

Не работает подтягивающий резистор на входе Ардуино DUE

Почему не работает подтягивающий резистор ( pinMod(A11, INPUT_PULLUP) )на входе А11, в ардуино DUE, если этот вход считывать командой analogRead(A11)? Если считывать командой digitalRead, то резистор не отваливается.

Замер времени менее 1мкс.

Всем доброго времени суток!!! 

Есть два дискретных сигнала, по ним срабатываю прервания, в обратчике прерваний использую t1=micros() и t2=micros() соответсвенно и определяю задержку второго сиганла от первого. Точность измерений получется 1мкс. 

Воапрс: можно ли замерить с точностью, хотябы 0,1мкс? 

Уменьшить количество используемых пинов

Делаю игрушку из 3х3 матрицей TTP223 touch модулей и 3х3 матрицей светодиодов 

Суть в том что бы в правильной последовательности нажать кнопки 

получилось что нужно 15 пинов возможно ли это как то сделать с меньшим количеством ? 

Вопрос касательно быстрой остановки счетчика прерываний

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

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

возьмем простой пример 

volatile int a = 0; // переменная
int b = 500; // нужное число импульсов
 pinMode(3,INPUT); // нужный пин

 
 void setup()
 {
pinMode(13,OUTPUT);
digitalWrite(13,1);

attachInterrupt(1, imp_detect, RISING); } void loop() { if (a >= b) { digitalWrite(13,0); a = 0; } } void imp_detect() { a++; }

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

Превет. Имеется ручка от паяльной станции. Хочу собрать станцию на ардуино нано и LCD 1602 с i2c. Правда сталкнулся с труднойстью.. никак не могу найти скетч под ручку с резистивным датчиком температуры. При комнатной температуре (примерно 25 С) сопротивление на терморезисторе 50 ом. Помогите со скетчем. )

ошибка "was not declared in this scope"

ругается на "&results" в 3 строке -  if(irrecv.decode(&results)). дословно "'results' was not declared in this scope
поскажите что имеется ввиду? я новичек если че)
 
 
void loop() 
{
 if(irrecv.decode(&results))
 
{
 if(results.value==IR_XunJi_Mode)
 { 
 while(IR_XunJi_Mode)
 {

Wemos D1 R2 + Adafruit motor shield

Я представляю ниже код, с помощью которого спокойно заставляю моторы двигаться с помощью Arduino Uno и Adafruit.
Решил подключить Wemos D1 R2 - и вот ничего не происходит.
Я понимаю, что пины разные, поэтому я перед пинами поставил D, там где регистр и направления forward... - оставил как есть. Ничего!
Поменял без D, но подставляя gpio просто цифры: https://image.ibb.co/icwYTw/wemos_d1_rc_pinout.jpg
Заработало, но как будто код путает скорость с направлением, и даже вообще с номером мотора. Вот тут я уже понял, что спросить бы на форуме.

Pro Micro на Atmega32u4

Необходимо на пинах 4,5,6,7 (Pro Micro на Atmega32u4) организовать перебор по 16 адресам (т.е. пройтьсь от 0 до F) Понятное дело, что работа с регистрами. На UNO проблем нет, а на Atmega32u4 затык.  Для проверки делал:

DDRD = DDRD | 0xfc;

PORTD = B1111100;

Дает 1 только на 4 пине.

Простите первый раз на форуме, как все правильно оформлять еще не научился.