Cyb1980, ты не мог бы весь код выложить?
Спасибо.
Cyb1980, ты не мог бы весь код выложить?
Спасибо.
Прошу помощи, т.к. в програмировании полный 0
Как существующую программу дополнить следующей функцией: при сопротвлении на входе ардуины 32 кОм, имеем на выходе а2 логическую 1, а при 16 кОм, логическую 1 имеем на выходе а3. При других значениях на входе - согласно настроек хоткей. Т.е. дополнительно использовать ардуину как компаратор с двумя выходами. Нужно это для регулирования громкости аналоговым регулятором (ALPS), остальное управление програмное.
Комп может быть как включен, так и выключен, питание на ардуину идёт от бортсети.
Помогите пожалуйста.
П.С. наверное неправильно к значениям резисторов привязываться, лучше к значению U на вх. а5, но сути это не меняет.
Последний раз редактировалось Rover 176; 22.05.2010 в 19:43.
в исходникахчитаем состояние АЦП, далее по тексту песни добавляешь свои куплеты, типаPHP код:
res_dt1 = analogRead(PIN); // прочитать данные АЦП
PHP код:
if (res_dt1==32kom) digitalWrite(a2, HI);
ну я тут еще задержки не показал... альпсу же еще провернуться надо... типаPHP код:
if (res_dt1==16kom) digitalWrite(a3, HI);
переменные 32kom, 16kom, a2 и a3 надо заменить на соответствующие значения... извини, копать описание дуины не охотоPHP код:
if (res_dt1==32kom) {
digitalWrite(a2, HI);
delay(40);
digitalWrite(a2, LOW);
}
причем значение напряжения тебе придется измерить самому... создать махонький проектик, который будет мониторить состояние АЦП в СОМ порт, и посмотреть, сколько это "32ком". + тебе нужно не точное значение, а вилка, ибо резисторы, провода, сила нажатия у нас зависят от разных параметров, поэтому... допустим нажатие кнопки "32КОМ" у тебя дает 145...148 положения АЦП, тогда
ну и далее по тексту пьесыPHP код:
if ((res_dt1<150)&(res_dt1>142)) {
Спасибо , но , как я понял надо порты а2 и а3 в проекте открыть, иначе не компилиуется. Вопрос - как?![]()
a2 и a3 это аналоговые пины... чтобы активировать их как цыфровые в дуине... спроси у Чипа, мне думается, пришлось лезть на сайт, читать описание, листать схему... пить пивочто как-то так
ну а далее, чтобы в порт "плюнуть" пользуйPHP код:
DDRC = 0x0C; // включили а02 и а03 на выход
PORTC = 0x00; // начально пины "0"
чтобы сбросить пин иPHP код:
PORTC &= B11111101
чтобы установить, это для 2 пина, для третьего передвинь 0 и 1 с 2 на 3 позицию справаPHP код:
PORTC |= B00000010
int A2 = 15;
int A3 = 16;
или так
#define A2 15
#define A3 16
Последний раз редактировалось Chip; 24.05.2010 в 03:08.
Что сделал :
1. С помощью конфига определил, что ардуина шлёт в комп при нажатии нужной кнопки значение 725
2. Дописал скетч (выделил)
#define PIN 5 //номер аналогового порта
#define LIMIT 6 //предел погрешности сопротивления
#define A2 15
#define A3 16
byte bytes[2];
int res_dt1;
unsigned long math_time,old_time,real_time;
void setup()
{
Serial.begin(115200); // настроить скорость com порта
}
void loop()
{
old_time = real_time;
math_time = 0;
res_dt1 = analogRead(PIN); // прочитать данные АЦП
if ((res_dt1<730)&(res_dt1>720))digitalWrite(A2,HIGH );
while(math_time < 300 && (analogRead(PIN)>res_dt1-LIMIT && analogRead(PIN) < res_dt1+LIMIT ))
{
real_time = millis(); //получить реальное время
math_time = real_time - old_time; //считаем длительность паузы
}
if( math_time > 80 ) //если нет дребезга
{
bytes[0] = res_dt1 & 255; // преобразовать в 2-байта
bytes[1] = (res_dt1 & 768) >> 8;
Serial.write( bytes,2); // отправить прочитаное значение компьютеру
}
3. Залил в ардуину.
При нажатии на кнопку на А2 ничего не меняется. Где ошибка?
П.С. Пинайте, ругайте за тупость, смейтесь в голос, только помагайте![]()
[QUOTE=Rover 176;63272]Что сделал :
1. С помощью конфига определил, что ардуина шлёт в комп при нажатии нужной кнопки значение 725
QUOTE]
- это преобразованное в 2 байты число, а тебе нужно не преобразованное
чтоб его получить я думаю можно попробывать что то типо
Serial.write( dt1,DEC) хотя неуверен лучше у гуру поинтересоваться!
Последний раз редактировалось Dr_cannabis; 24.05.2010 в 15:31.
Ошибка в том что нужно в void setup() сконфигурировать вывод A2 на выход
Эту тему просматривают: 4 (пользователей: 0 , гостей: 4)