Все верно, только конденсатор избыточен, достаточно будет и 1000мкф
Вид для печати
Все верно, только конденсатор избыточен, достаточно будет и 1000мкф
Chip, подскажи:
есть потребность изменять громкость этого усилителя в зависимости от скорости, даже при выключенном компе через Arduino
мне так видится, надо копать в сторону TDA7313 и регулировать либо тонкомпенсацией (8 и 12 ноги), либо уровнем сигнала (6, 7 и 16, 17 ноги). по I2С уровень громкости регулировать не получается, ибо порты D2 и D3 заняты энкодером
Вложение 17685
с входной цепью от датчика скорости - вроде понятно (замыкается на землю 4 раза за оборот колеса), собственно, поэтому сюда и написал, а вот как регулировать саму громкость не соображу. буду очень признателен за помощь!
I2С на А4 и А5
Читать датчик скорости
у меня arduino pro micro извини, что не уточнил сразу
за ссылку - спасибо, гляну!
с I2C я уже начал смиряться))) единственный вопрос: не поплохеет этой ТДАшке от двух мастер-устройств (сейчас управление идет через PIC18F14K50 и совсем отключать его не планирую)? даже если их, например, диодами развязать, на входе может каша получиться
Можно на время активности отключать шину I2C от PIC18F14K50
Но возможно стоит прочитать спецификацию на шину, я не точно не помню, но по моему шина может работать с несколькими мастерами
К сожалению я уже подзабыл этот момент
Раз уж тема про маршрутник, то подскажите наилучший алгоритм расчета средних значений скорости и расхода топлива.
У себя суммирую все измерения и делю на количество измерений. Но со временем происходит переполнение счетчиков, поэтому этот вариант не совсем устраивает. Может кто-то выложит готовые варианты?
Надо бы чуть конкретики... Средняя скорость за какой период? Вообще с момента пуска двигателя? Или без учета простоя? Средний расход топлива - это кол-во сожженного топлива разделить на пробег и умножить на 100 км. Т.е. надо хранить сожженное топливо и пробег.
Очень желательно уточнить, что входит в состав компа...
Если считать среднюю скорость с момента пуска двигателя, то можно просто использовать внутренний таймер и засекать время посредством millis(), примерно так:
if ("здесь условие проверки работы двигателя") {
start = millis(); //записали значение, при котором был запущен двиг
engineOn = 1; //поставили метку, что двигатель запустился
}
if ("здесь условие проверки остановки двигателя" && engineOn == 1) {
workingTime = (millis() - start)/1000; //вычислили сколько секунд проработал двигатель
}
Как вычислить теперь км/ч, думаю, не трудно догадаться :)
Переменные start и workingTime надо делать unsigned long. Переполнить - нереально :)