№ 8384 В разделах: Electronics
ESP8266
Programming
от August 11th, 2017,
В подшивках: Arduino, ESP8266, USB
GPIO0->GND переключение микросхемы в режим прошивки
RST->GND сброс микросхемы и перезапуск
При перезапуске GPIO0 должен быть притянут к 0.
№ 8347 В разделах: Electronics
ESP8266
Programming
Sysadmin
от July 7th, 2017,
В подшивках: Arduino, ESP8266, Linux
Просто добавьте вашего пользователя в группу dialout и перелогиньтесь.
vlad@vlad-notebook:~$ sudo adduser vlad dialout
№ 7181 В разделе "Electronics"
от April 26th, 2015,
В подшивках: Arduino, Displays, ESP8266, Raspberry Pi
Можно подключать к Raspberry Pi, Arduino и т.п. На некоторых персональных компьютерах есть даже I2C выход на материнской плате.
(more…)
№ 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: I want EARS! I want two ROUND BLACK EARS to make me feel warm 'n secure!!