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

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

Организация многозадачности: циклы и мр3 плеер с ИК управлением

Есть LED кубик, в котором поочередно крутится несколько циклов с эффектами. Есть свободные ноги на которые хочется повесить Мп3 плеер с управлением от ИК пульта.

Сразу прошу не закидывать тапками, а дать совет престарелому чайнику, ибо програмировал последний раз лет эдак 25 назад на Basic в институте).

Проблемы с LCD 2004A i2c

LCD 2004A i2c неправильно отображает каждый 4 символ. При отображении всех восьмерок каждый 4 символ выводиться 0, а при тображении всех девяток каждый 4 символ выводиться 1.

Адрес PCF8574A 0X3F

Использовал стандартную библиотеку LiquidCrystal_I2C. Пример SerialDispley

 

 

В чем может быть заморочка, куда копать ?

Запись цифрового сигнала

Доброго времени суток!
Господа форумчане, подскажите, как можно считать с цифрового пина последовательность бит (частота 2 кГц),
И вывести ее в serial порт, в таком же сыром, двоичном виде?

Лазерный гравер, не могу понять код

Доброго времени суток. Хочу собрать лазерный гравер на ардуино и нашел код, не могу в нём разобраться.

Я так понимаю функции moveForward и moveBackward отвечает за вращения мотора, вперед, назад. Создается массив?

Ещё мне не понятна функция moveSM, я так понимаю она отвечает, где должна остановиться каретка с лазером x- это координата х y - это координата y, а z - это лазер работает, не работает.

Может кто-то имел опыт с такой работой?

Объясните пожалуйста принцип работы.

 

 

Как из буфера считать и сохранить данные в сроку? Требуется сохранить EMEI GPRS модуля.

приветствую,

прошу помощи с кодом чтения и сохранения данных (ответ AT-команды) из порта.

С помощью AT-команды (AT+GSN) запрашиваю EMEI-код GPRS-шилда (он на Serial2). Не могу понять как его (EMEI) в цикле считать массивом в строку. И какой порт считывать - Serial или Serial2.

Полученный номер не повторяет EMEI и больше чем в два раза.

Due. MIDI.sendNoteOn не работает

Хочу вывести с ардуинки ноту в vsti. Не получается. 

По порядку:

1. Загружаю скетч через programming USB

2. Перетыкаю кабель в Native USB

3. Запускаю софтовый VSTi и отмечаю ардуинку как входное устройство: http://prntscr.com/iuak75

И ничего не происходит. Софт проверенный. Мидиклавиатуру к нему подключал таким образом без проблем. Мышкой клавиши нажимаю - звук идёт.

Вариантов перепробовал массу, вот парочка основных:

Синхронизация. Получить время от NTP сервера (GPRS, SIM900, UDP?)

Добрый день,

прошу помочь с кодом для первоначальной установки часов и дальнейшей синхронизации Arduino Mega 2560 по GPRS.

SIM900 подключен через HWSerial к Mega. На шилде есть часы. Прошивка на SIM900 обновлена до последней (1137B06SIM900M64_ST_ENHANCE).

Пробовал два варианта:

1) расширенные команды от SIMCOM - "AT+CNTP" и "AT+CIPGSMLOC". первая с большой задежкой возвращает ошибку сети +CNTP:61 (хотя сначала отвечает OK), вторая ничего не возвращает кроме OK.

ENC28J60 + openweathermap Нужна помощь

Ребят нужна помощь. 

Я  конечно экономист наверное не плохой но   программист  видимо  скверный ну  или тупой. Поэтому прошу  помощи у  неравнодушных .

Увлекся  я тут  штукой под названием Arduino ну  и прикупил я к ней ethernet на  чипе который  обозначен  в заголовке темы.

Собрал все в кучу  , залил тестовые скетчи , работает. 

Ликбез для Arduino DUE

Добрый день, форумчане.

Предлагаю тему про изучение Arduino DUE (sam3x8e) не на уровне Arduino IDE, а с пониманием регистров...

Обращаюсь к знатокам программирования (и кто уже разобрался с Atmel sam3x8e) помогите разобраться.. сам переключился на изучение sam3x8e т.к. на Arduino MEGA не стало хватать ресурсов и так вопрос:

1. стандартная функция digitalWrite требует порядка 2 мксек времени, это ОЧЕНЬ расточительно (168 тактов!!)

Прерывания по таймеру, что я делаю не так?

Есть код в интерпретации Си:

ISR(TIMER1_OVF_vect) 
{ 
PORTB^=(1<<5); 

TCNT1=61630;//Начальное значение таймера 
} 

int main(void) 
{ 
DDRB|=(1<<PB5); 

TCCR1B=B00001001;//Предделитель = 1024 
TIMSK1=B00000001;//Разрешить прерывание по переполнению таймера 1
TCNT1=61630;//Начальное значение таймера 

sei();//Разрешить прерывания 

while(1) 
{ 

} 
}

 

И аналогичный ему код в интерпретации arduino: