№ 5146 В разделах: Electronics
Programming
от May 6th, 2013,
В подшивках: Arduino
По работе мне понадобилось сделать датчик поворота руля. Самый простой и точный способ это выдернуть шифратор из обычной компьютерной мыши, пришаманить его к рулевой колонке, а потом тупо считать подаваемые импульсы. А что если руководитель проекта подумал, что сделать это с помощью переменного резистора гораздо круче? Ну раз он захотел, то почему бы и нет? Ну подумаешь точность немного упадет 🙂 Все равно компьютер будет подруливать.
Чтобы ADC заработал нужно подключить AGND, AREF и AVCC к питанию. Резистор нужно подключить к ADC0 согласно схеме на рисунке ниже.
Теперь необходимо инициализировать АЦП. Включаем нужный пин на вход (я это сделал довольно грубо и одним махом сделал входом весь порт C), устанавливаем делитель в ADCSRA на 256, в DIDR0 отключаем ненужные входы АЦП 1, а нужные 0 и настраиваем мультиплексор.
void initADC(void) { DDRC = 0; PORTC = 0xFF; PRR |= (1<<PRADC); ADCSRA = (1<<ADPS0)|(1<<ADPS1)|(1<<ADPS2); DIDR0=0b00111110; ADMUX = (1<<MUX0); }
Чтобы снизить шумы можно применить LC фильтр, описаный в даташите
Теперь можно начать читать из АЦП значения. Они будут изменяться от 0 до 1023.
int adc_value=0; while (1) { sumsung_clr(); sumsung_goto(0,0); fprintf_P(&display,PSTR("%02d\n"), adc_value); _delay_ms(300); ADCSRA |= (1<<ADSC)|(1<<ADEN); while((ADCSRA & (1<<ADSC))!=0) ; adc_value=ADC; }
Должно получиться что-то типа такого
Демонстрационный стенд с подключеным экраном
Fortune cookie: "It was man who first made men believe in gods." [Critias (480-403 B.C.E.)]
Здравствуйте, Владимир.
Подскажите, как можно прошить ATtiny45 с помощью Arduino Nano? Возможно ли такое?
Ограничения такие:
1. Из программатора только Arduino Nano с разъемом ICSP
2. Прошивка в виде *.hex, т.е. прога Arduino IDE отпадает – она не знает hex.
Подключение ATtiny45 к Nano я нашел (http://blog.roguecode.co.za/make-dirt-cheap-electronics-with-attiny45-arduino-nano/), но не знаю чем прошивать.
большинство программаторов AVR работает на частоте 12 мгц и выше, т.к. сделаны они на той же AVRке. если ваша нано может работать на 12 мгц и выше, то проблем быть не должно. программируете сначало свою ардуину прошивкой для программатора, а потом ардуиной закачиваете прошивку в тиньку. для ардуино куча всяких сайтов сделано. достаточно немного погуглить и сразу все нужные программы найдете.
Если вы совсем не знаете что и как, то можно купить готовый программатор всего за 150 руб http://www.dx.com/ru/p/usbasp-usbisp-downloader-programmer-for-51-avr-157167?r=47602088