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

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

Прошивка wavgat

Здравствуйте,может кто подскажет,а то я совсем отчаялся с этой Wavgat,за какие грехи я её получил? Скомпилированный скетч не загружается,USBASP просто не видит эту ардуино про мини

вот такая ошибка  avrdude: Version 6.0.1, compiled on Apr 15 2015 at 19:59:58

Как определить почему МК перезагружается, если перезагрузка происходит при выводе в монитор?

Погуглил проблему. Вот неполный список причин почему МК может перезагружаться:
 
1)Плохое питание (Слабый источник, большой уровень пульсаций, контролируемый из вне источник питания(USB-port PC))
контроллер должен быть обязательно сброшен при напряжении питания ниже критического.
При снижении питания работающего МК может произойти все что угодно, вплоть до повреждения программы во флэши.
Не доверяю ни каким BODам, а ставлю внешний супервизор.
 

Барабаны на ардуино уно с использованием мультиплексора CD74HC4067

Делаю барабаны на ардуино уно, но т.к. там всего шесть аналоговых входов решил использовать мультиплексор CD74HC4067. Перерыл все коды в интернете ничего не подходит. Нужно, чтобы к одному аналаговому пину с помощью мультиплексора можно было подключить 8 пьезо, которые работают по принципу, ударил, сыграла нота в виртуальных барабанов. Чувствительность удара учитывается. Кому надо могу скинуть код без использования мультиплексора, но прекрасно раюотает. Помогите пожалуйста.

Ошибка компиляции Arduino

Только-только начал работать с ардуино, столкнулся с проблемой при работе с датчиком температуры и влажности DHT11. А именно - его библиотекой. При компиляции пишет: 

[spoiler][/spoiler]

Да, у меня плата Arduino Uno, да, порт COM12. Сам скетч:

Позволяет ли Ардуино на одном прерывании отслеживать оба фронта?

Как пример:

void setup ()
{
  // Всяк разные установки и объявления
  attachInterrupt(0, SWITCH_ON, RISING);    
  attachInterrupt(0, SWITCH_OFF, FALLING); 
 }
void loop ()
{
  // Тело программы
}
void SWITCH_ON ()
{
  digitalWrite(pinOut, HIGH);
}
void SWITCH_OFF ()
{
  digitalWrite(pinOut, LOW);
}

Может ли один и тот же пин прерывания отслеживать передний и задний фронты управляющего импульса? Не нашел (подскажите). Или неправильно искал (ткните носом в ссылочку, где почитать).

Заранее спасибо!

Подача LOW на INPUT_PULLUP ?

Возникла необходимость подать низкий уровень (LOW) на pin 8, который и режиме INPUT_PULLUP, плата не сгорит?

void setup() 
{
  pinMode (8, INPUT_PULLUP);
}

void loop() 
{
  // Прочий код...
  digitalWrite(8,LOW);
}

как объяснить такое поведение PROGMEM

Добрый день старожилы и гуру.

Заметил что ни смотря на наличие прогмем атрибута, компилятор не всегда помещает строки во флэш. Не могли бы вы объяснить чем рукаводствуется компилятор/почему так происходит ?

первый пример. если объявляем без инициализации то list[3] не сохраняется во флэш

const PROGMEM char one[] = HELLO;
const PROGMEM char two[] = WORD;
const PROGMEM char three[] = WORD;

//const PROGMEM char *const list[] = {one, two, three};
const PROGMEM char *const list[3];

 

Обнуление показания тока при нажатии на кнопку (ACS712)

Здравствуйте, знатаки, помогите пожалуйста. Сделал достаточно точный Ваттметр с использованием 2-х датчиков ACS712 и ADS1115, всё налажено и показывает ток очень точно, но не в этом суть. К примеру, готовый прибор лёжа в корпусе на столе возле компа где занимался отладкой показаний датчиков, при отключенной нагрузке показания на дисплее равны нулю как и должно быть, а стоит мне отодвинуть на метр прибор, нулевые показания либо повышаются на 20-30mA, либо идут в минус (ну это нормально для этих датчиков, из-за воздействия внешних магнитных полей).

PID библиотека

Ребята добрый день.

использую библиотеку. иногда в процессе работы устанавливаю новые значения коэффициентов, но все же это не совсем что мне нужно. я хотел бы не корректировать расчеты с новыми коэффициентами а именно начать их с нуля отбросив результаты прошлой работы со старыми коэффициентами - словно мы перезагрузили ардуину.

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