6-МАЪРУЗА. МИКРОКОНТРОЛЛЕРГА СЕНСОРЛИ ПАНЕЛНИ БОҒЛАШ
Сенсорли экран аслида тўлиқ LCD экран эмас. Бу шунчаки шаффоф панель бўлиб, у мос ўлчамдаги дисплей олдига ўрнатилган бўлади. Шунда процессор экран устида босилган нуқтанинг координаталарини аниқлай олади. Агар яратиладиган лойихаларда дисплей кўрсатиб турган худудларга қўл текизиш билан бошқариш тизими асосида бўлса, дисплей устига сенсорли панел қўйиш ва уни ўқувчи дастур тузиш керак бўлади.
10.1-расм. DFRobot фирмасининг touch-панеллари жамланмаси
Сенсорли панеллар нафақат экран устига, блки, ихтиёрий текисликка ўрнатилиши мумкин. Унинг ёрдамида ихтиёрий текисликда бошқарув панелини хосил қилиш мумкин бўлади. Масалан бирор текисликка клавиатуранинг суратини чизиб, унинг устига сенсорли панел ёриштирилса, у клавиатура вазифасини бажарувчи қурилмага айланади. Бунда сенсорли панелга қўл текизилганда унинг конткат нуқтаси координаталарини аниқлаш зарур бўлади.
Резистив экран қандай ишлайди ?
Резистив сенсорли панель шиша асосга ўрнатилган бўлиб, у бутун конструкциянинг мустаҳкамлигини таъминлайди. Бу асос устига резистив қопламали юпқа пластик пластина жойлаштирилган бўлади. Айрим сенсорли панелларда резистив қатлам тўғридан тўғри шиша устига ётқизилган бўлади. Резистив қопламали пластина устига микронуқталардан иборат яна бир пластина ўрнатилган бўлиб, у резистив материаллар ўртасида бўшлиқ ҳосил қилади. (10.2-расм).
10.2-расм. Резистив сенсорли экран қурилмаси 1-шиша, 2-резистив қоплама, 3-изоляцияловчи қоплама, 4-мембрана.
Экранга қўл билан тегилмаганда микронуқтали қоплама иккита резистив қопламаларни бир биридан ажратиб туради. Агар устки қатламга қўл билан тегилса, у деформацияланади ва остки қатлам билан контакт юзага келади, бу электр энергиясини бир қатламдан иккинчисига ўтказишга имкон беради. Сенсорли экраннинг тўртала томони ҳам ўтказувчи электроддан иборат бўлиб, улар бутун узунлик бўйича жойлашган ва устки ёки остки қатламда резистив текисликка ўланган бўлади. Бу эса экран координаталарини аниқлаш имконини беради. Масалан, сенсорли панелнинг чап ва ўнг чегаралари устки қатламга юқори ва пастки чегаралари эса остки қатламга ўрнатилган электродлар билан контакт ҳосил қилади (10.3-расм).
10.3-расм.. Резистив сенсорли эпанелда X ва Y ўқлари.
Ушбу тўртта электрод сенсорли панель коннекторида Х1, Х2, Y1 ва Y2 сифатида кўрсатилади, аммо улагичдаги рақамлаш тартиби сенсорли экраннинг ўзига хос маркаси ва моделига қараб фарқ қилиши мумкин. Уланишлар жуфтлигини экранга тегмаган пайтда мультиметр ёрдамида уларнинг орасидаги қаршиликни ўлчаш орқали билиб олишингиз мумкин. Ҳар бир мос келадиган жуфтлик уларнинг орасидаги қаршилик 1кОм атрофида ёки ундан пастроқ бўлади, мос келмайдиган электродлар орасида контакт бўлмайди.
Экранга тегилгандаги тегиниш нуқтаси координаталарини аниқлаш учун қатламлардан бири бир томондан GND га бошқа тонондан эса +5 В га уланади. Бу эса бу қатлам юзаси бўйлаб турли қийматдаги кучланишларни ҳосил қилиш имконини беради. Сўнгра иккинчи қатлам чиқишларидан нисбий кучланиш ўлчанади. Агар экрандаги нуқта GND контактига яқинроқ бўлса, пастроқ, +5 В га яқинроқ бўлса юқорироқ кучланиш аниқланади.
Бошқа ўқни ўқиш эса қатламларнинг уланишини ўзгартириш орқали амалга оширилади. Яъни аввал манба блокига уланган қатлам ўлчов каналига, аввал ўлчов каналига уланган қатлам эса манбага уланади.
Arduino микроконтроллеридан фойдаланган ҳолда бу ишни осонлик билан амалга ошириш мумкин. Чунки аналог кириш пинларни дастур ёрдамида дискрет чиқиш пинларига ўзгартириш мумкин.
10.4-расм. Сенсорли экранни Arduino га улаш схемаси
Қуйидаги листингда контроллерга уланган сенсорли экрандан маълумотларни ўқиш мисоли келтирилган.
10.1 Листинг
int x = 0;
int y = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
pinMode( 15, INPUT ); // Аналоговый вывод 1
pinMode( 17, INPUT ); // Аналоговый вывод 3
pinMode( 14, OUTPUT ); // Аналоговый вывод 0
digitalWrite( 14, LOW ); // Используем вывод 0 как подключение к GND
pinMode( 16, OUTPUT ); // Аналоговый вывод 2
digitalWrite( 16, HIGH ); // Используем вывод 2 как подключение к +5 V
delay(2); // для стабилизации напряжения
x = analogRead( 1 ); // Читаем значение X
// переключить режимы выводов и сделать то же самое для оси Y.
pinMode( 14, INPUT ); // Аналоговый вывод 0
pinMode( 16, INPUT ); // Аналоговый вывод 2
pinMode( 15, OUTPUT ); // Аналоговый вывод 1
digitalWrite( 15, LOW ); // Используем вывод 1 как подключение к GND
pinMode( 17, OUTPUT ); // Аналоговый вывод 3
digitalWrite( 17, HIGH ); // Используем вывод 3 как подключение к +5 V
delay(2); // для стабилизации напряжения
y = analogRead( 0 ); // Читаем значение Y
// выводим значения в последовательный порт
Serial.print(x);
Serial.print(",");
Serial.println(y);
delay (200);
}
Do'stlaringiz bilan baham: |