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

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

Мини компьютер на мотоцикл Урал

Делаю микрокомпьютер для урала на дисплее 3310 (Индикатор заряда и напряжения аккумулятора,температура, тахометр цифровой и графическая шкала к нему, индикаторы поворотов и света.)

Сталкнулся с проблемой тахометра. Перечитал много о цифровых тахометрах, но так и разобраться не могу до конца. Кароче не работает, помогите сделать. Сигнал буду брать на прямую с прерывателя (один переход с HIGH на LOW = 1 оборот)

streng.h sscanf

Всем привет!

Прошу помочь разобрать строку. <Idle,MPos:100.000,20.000,20.000,WPos:100.000,20.000,20.000>

Загяню в буфер типа масива CHAR и потом разбтваю на части и вывожу в сериал
    sscanf(buffer, "%[^,], %[^,], %[^,], %[^,], %[^,], %[^,], %[^>]", &STATUS, &MPOSX, &MPOSY, &MPOSZ, &WPOSX, &WPOSY, &WPOSZ);

Как сделать задержку в условии.

    if ((results.value==3404 or results.value==1356) && millis()-VTime > 1000) { 

      //Что-то делаем.

      VTime=millis();
    } 

 

Необходимо сделать маленькую задержку в 1 секунду если сработало это условие. Тоесть сделать что бы срабатывало это условие не чаще чем раз в секунду.

 

Выше я написайл код который делает это.

А может есть какие-то более простые решения? Возможно ли как-то избавится от лишней переменной VTime? 

delay и подобные ему не предлогать. Спасибо.

как создать sinewave 40kHz?

Привет форумчанам!

Есть видео, на котором показано, что чел сделал на arduino генерацию синусоидальной волны.
А вопрос, можно ли сделать волну 40kHz с помощью arduino?
 

Arduino Due + AVR Studio 6.1 = друзья :)

Прикупил себе Arduin Due, попробовал поиграться со стандартными библиотеками от дуино... да все красиво, все легко... НО мощь SAM3X засунута в самую ж-у... написал обычную мигалку штатным светодиодом, без задержки, ну думаю ща едак на 50Мгц или около как замигает, ага ща... стандартная digitalWrite() замигала на 2.5мкс(400кГц). Думал м/б фигня с программой какая нить, вставил внутрь цикла еще один, который щитал с инкрементом от 1 до 100000, делил, и еще какую то операцию...в результате диод так на 400кГц и продолжал мигать, т.е.

как программно реализовать след. алгоритм

Подскажите пожалуйста, как реализовать след. алгоритм:

К uno подключена матричная клавиатура. При долгом нажатии на клавишу 5, попадаем в под меню программы, которое должно либо увеличивать или умешьшать значение переменной при нажатии соответственно клавишь 3 и 4, после установки нужного значения, жмем, к примеру, клавишу А и выходим в основоне тело программы, ну короче как то так.

Пробовал так но это совершенно не работает:

Помогите объединить два скетча

Есть рабочий скетч автомобильного расходомера 

RX/TX на MEGA

Все мы знаем, что на мега несколько RX/TX - а вот как их использовать?

Покажите пример кода?

Динамическое выделение памяти malloc, realloc на mega2560

Добрый день!

Так как я не знаю сколько байт мне придет по Serial я решил воспользоваться динамическим выделением памяти:

Создаю переменные:

// указатель на следующий символ для записи в строке wifiterm
int wifitermoffset=0;
// строка для анализа парсером
char *wifiterm= (char*)malloc(sizeof(char));

Пишу данные:

EUSART на ардуино. Возможно?

Есть устройство, готовое, собраное, работающее. Слить протокол обмена информацией могу. НО, оно общается со своим мастером по каналу EUSART.

И вот тут наступают непонятки. Это особая фишка микрочипа или?

Или все же можно и на ардуине попользоваться?