Заигравка с хардуера

През последните 1-2 месеца леко съм изоставил уеб програмирането и повечето глупости и със Станислав се занимаваме с PIC16F88. За непросветените - това е една малка интегрална схема, която притежава изчислителна мощност във формата на програмно осигуряване (което си го пишеш ти на асемблер/С) и възможност за връзка със света (входно-изходни пинове). Това може да си го направиш да управлява какво ли не, да следи какви ли не датчици, даже сме се заканили да го правим на космически кораб :D
Ето малко от спецификациите на чипа (пълен преглед в Даташита):

  • Брой крака на интегралата: 18
  • 16 входно-изходни пинове обединени в два 8 пинови порта PORTA и PORTB
  • Вграден тактов генератор, възможност за включване на външен кварц до 20 MHz
  • Прекъсвания - един пин за външно прекъсване, прекъсване по смяна на нивото на PORTB, прекъсване по АЦП, по USART, по CCP…
  • 10-битово АЦП
  • асинхронен сериен интерфейс, SPI, I2C, SSP
  • модул за ШИМ и аналогови компаратори
  • вградена енергонезависима памет - 256 байта EEPROM
  • като стана въпрос за паметта - 386 байта RAM и програмен флаш от 4к думи по 14 бита
  • Цена - 2 лева :)

Програмите които сме зареждали сме компилирали със Small Device C Compiler и сме ги зареждали в чипа с този програматор.

Да минаваме към интересната част - клипчетата :) Коментара е на български.

Първи опити за програмиране - работеше. Това е хардуерния вариянт на Hello World - мигане на диод :)


Тук въртим една броячна променлива и я изкарваме на порта. На осцилоскопа се вижда как всеки следващ пин от порта има двойно по-голям период на сигнала.

Тука видяхме що е това чудо прекъсване и как може програмата да се прекъсне докато се изпълнява и нещо съвсем друго да почне да работи.
Първи опити с АЦП-то.
ШИМ - първо че се вижда на осцилоскопа, второ че се забелязва как влияе на светодиода.
Термометър - датчика е аналогов и минава през АЦП-то. Няма калибровка и точността текущо е под всякаква критика.
Тук намерихме едно стъпково двигателче и един фоторезистор имаше голяма заигравка. Виждате как го въртим според зависи колко е светло.

Това е продължение - прототип на схема за палене на газова горелка :)
Светодиода свети толкова по-силно колкото по-тъмно е.
Око, което се върти към светлината.

Tags: ,

Leave a Reply