Orodha ya maudhui:

Kuanza na Bascom AVR: Hatua 5
Kuanza na Bascom AVR: Hatua 5

Video: Kuanza na Bascom AVR: Hatua 5

Video: Kuanza na Bascom AVR: Hatua 5
Video: ХАБИБ - Ягода малинка (Премьера клипа) 2024, Novemba
Anonim
Kuanza na Bascom AVR
Kuanza na Bascom AVR

Huu ni mwanzo wa safu kukufundisha mpango wa microcontroller yako ya AVR na Bascom AVR.

Kwa nini nafanya hivi.

Sampuli nyingi za programu katika safu hii unaweza kufanya na Arduino.

Baadhi ni rahisi na ngumu zaidi, lakini mwishowe zote zitaendesha kwa mtawala mmoja.

Lakini njia ya programu ni tofauti katika kila mazingira ya maendeleo. Arduino inahitaji maktaba ya kila kitu isipokuwa kazi za msingi. Bascom pia inafanya kazi na maktaba, lakini mara chache lazima nijumuishe moja. Na Arduino, mipangilio yote maalum ya vifaa hufanywa kupitia maktaba. una ushawishi mdogo sana juu ya nguvu halisi ya mdhibiti mdogo. Kuanzia vipima muda ambavyo mdhibiti anacho. na arduino unahitaji maktaba tena. ikiwa unayo kipima muda mpaka ifanye kazi, inaweza kuwa maktaba nyingine inagongana na mipangilio yako. Kwenye bascom una ufikiaji wa bure kwa vifaa kamili ikiwa ni pamoja na sekta ya buti ambayo inamilikiwa na arduino. kwa mfano, maktaba zingine kwenye bascom zinakuuliza ni saa gani unayotaka kutumia. kwa upande mwingine, kwa kuwa arduino inafanya iwe rahisi sana kuunda maktaba mwenyewe, kawaida hufanya iwe jukwaa ambapo vifaa mpya na sensorer kawaida huwa na maktaba moja kwa moja. kile ambacho mara nyingi huhusishwa na utafiti mwingi kwenye bascom na kazi ambazo kawaida maktaba ingechukua lazima ziingizwe kwa uangalifu kwenye nambari ya mpango. lakini habari njema jamii ya bascom pia ni kubwa sana ndio sababu kuna suluhisho kwa kila wazo.

Kwa hivyo inategemea kwa sehemu mradi ni nini kinatumika kwa mazingira ya maendeleo na kwa sehemu juu ya ujuzi wa mtu wa programu.

lakini kwanini nafanya safu hii. kwa upande mmoja inaokoa pesa nyingi. Sina lazima kununua bodi ya arduino kwa kila mradi. Kwa mfano: Jina lisilo la jina la Arduino uno linagharimu karibu 12 € mtawala aliye juu yake anagharimu tu 2.5 € na mzunguko wa chini unahitajika kwa kazi thabiti, inagharimu karibu 4 €. kwa upande mwingine una uteuzi kamili wa vipande vya avr ambavyo vinasaidiwa kupatikana. atmegas 8 hadi 256 na attiny 8 hadi 2313 na aina nyingi za xmega ambazo sina uzoefu wowote. Ikiwa unataka tu kutumia servo na sensorer ya ultrasonic ambayo inaweza kutambua mkono, kwa mfano, na kisha ufungue kifuniko cha takataka, unaweza kutumia chip ndogo kabisa. Kwa hivyo kuna sababu nyingi za kujifunza lugha ya pili.

Basi wacha tuanze

Vifaa

Hii sio orodha ya sehemu za chini zinazohitajika kwa utendaji thabiti wa chip na programu.

Bodi ya mkate kwa upimaji

Atmega 8-16PU (bora ununue 2 au 3 ikiwa utawaua kwa makosa)

Mdhibiti wa voltage 7805 5V

Kinzani ya 10Kohm

100nF filamu capacitor

10µF capacitor elektroni

100µF capacitor elektroni

waya zingine za mkate

Windows PC 7/8 / 8.1 / 10

Programu ya ISP (nitatumia hapa USBasp unaweza kuinunua kwa amazon kwa pesa kidogo)

Bascom AVR (unaweza kupakua hapa DEMO. Funktions zote zimefunguliwa, lakini unaweza kuandika nambari tu kwa saizi ya 4Kb ambayo inatosha kwa nambari nyingi).

Sehemu za hiari:

LED na vipinga

kushinikiza swichi

sehemu maalum za mradi

Hatua ya 1: Usanidi wa Bascom na Usanidi

Ufungaji wa Bascom na Usanidi
Ufungaji wa Bascom na Usanidi
Ufungaji wa Bascom na Usanidi
Ufungaji wa Bascom na Usanidi
Ufungaji wa Bascom na Usanidi
Ufungaji wa Bascom na Usanidi

Pakua faili na usakinishe Bascom AVR. Sakinisha sehemu zake zote pamoja na kisanduku cha kuangalia cha mwisho baada ya kusakinishwa.

Baada ya hapo kuwasha tena PC yako vinginevyo bascom haitaanza.

Baada ya kuanza upya bascom.

Nenda kwenye Chaguzi -> Programu na uchague USBasp kutoka kwenye orodha, ila mipangilio na funga Bascom.

Tumia Programu hii kusanikisha usbasp. Baada ya hapo, fungua tena PC yako. Sasa unganisha USBasp na PC yako na uanze msimamizi wa kifaa. USBasp inapaswa kuonekana kwenye vifaa vya libusb.

Stat Bascom tena na uunda faili mpya. Hifadhi kwenye pc yako na ubonyeze kitufe cha F7 kwenye kibodi yako.

Mkusanyaji huanza na kukusanya programu tupu. Sasa unaweza kujaribu utendaji wa programu.

Piga kitufe cha F4 kwenye kibodi yako ili uanze kidirisha cha programu. Sasa nenda kwenye chip -> tambua kuanza mwingiliano. LED kutoka USBasp sasa inapaswa kupepesa kifupi. Unapaswa kupata ujumbe kama vile Chip Id FFFFFF haikuweza kusoma kifaa. Hiyo ni ishara nzuri Programu inafanya kazi lakini haikupata chip.

Sasa tunaweza kuanza kujenga mzunguko wa kwanza.

Hatua ya 2: Wacha Tuchunguze kwa karibu Chip

Wacha Tuchunguze kwa karibu Chip
Wacha Tuchunguze kwa karibu Chip

Ukiangalia pinout ya chip inaonekana chip haina kufanana na bodi ya arduino. Kwa kweli, tunatumia Atmega8 na kwenye Arduino uno ni Atmega328. Lakini Pinout ni karibu sawa lakini yeye Chip ya bodi ya Arduino Uno ana kazi zaidi. Hapa majina ya pini. VCC na GND ni pini za usambazaji wa umeme.

AREF na AVCC ni pini za voltage ya kumbukumbu na usambazaji wa umeme kwa analog kwa kibadilishaji cha dijiti.

PB 0-7 PC 0-6 PD 0-7 ni pini za pembejeo za jumla za pembejeo zilizo na umiliki mwingi.

kuweka siri ndio jina linasema. Ili kuanza tena chip. Mstari ulio juu ya jina la kuweka upya unamaanisha kukataliwa. Hiyo inamaanisha, kuweka upya chip lazima uivute hadi 0V.

Kwa pini zifuatazo tenga tofauti inayoweza kufundishwa hivi karibuni.

RXD TXD ni pini za vifaa kwa mawasiliano ya serial UART.

INT0 INT1 ni pini za kukatiza vifaa

Chanzo cha Saa ya XCK / T0 UART / Timer / Counter0 Clock

Pini za XTAL / TOSC ni za kioo nje hadi 16MHz (aina tofauti hadi 20MHz) / pini za Crystal kwa RTC ya ndani

T1 ni sawa na T0

Pini za AIN ni za kulinganisha analog

ICP1 ni sawa na T0 / T1

OC1A ni pini ya pato la vifaa kwa kituo cha pwm timer1 A

Chip ya SS / OC2 chagua pini kwa SPI / kama OC1B lakini kituo B

MOSI MISO SCK / OC2 ni pini za vifaa vya SPI na pini za programu / pWM pato timer2

ADC0 hadi ADC5 ni pembejeo za analog

SDA SCL ni pini za vifaa I2C

Chip ya kawaida inaweza kufanya kazi kutoka 4, 5V hadi 5, 5V Atmega 8L inaweza kufanya kazi na Voltage ya chini sana.

Unaona hata chip hii inaweza kufanya zaidi ya Arduino Uno inaonekana haiwezi kufanya. Lakini Arduino anaweza kuifanya pia, lazima uipange tu.

Hatua ya 3: Mzunguko wa Kwanza

Mzunguko wa Kwanza
Mzunguko wa Kwanza
Mzunguko wa Kwanza
Mzunguko wa Kwanza

Sasa ni wakati wa kujenga mzunguko wako wa kwanza.

Mzunguko wa kwanza ni nini? Haki! Hebu blink LED.

LED imeunganishwa na PB0. Kuzuia karibu na chip kuna 10k Ohms.

Kinzani karibu na LED ina 470 Ohms.

Sasa unaweza kuunganisha USBasp na Atmega kama inavyoonekana kwenye picha.

Lakini kabla ya kuwasha umeme wacha tuandike programu.

Hatua ya 4: Andika Mpango wa Kwanza

Andika Programu ya Kwanza
Andika Programu ya Kwanza

Unda faili mpya katika Bascom na andika maandishi yafuatayo.

$ regfile "m8def.dat"

$ kioo = 1000000 config portb.0 = pato fanya portb.0 = 1 subiri 1 portb.0 = 0 subiri kitanzi 1

baada ya hapo ikusanye kwa kupiga F7 kwenye kibodi yako.

Sasa tunaweza kusanidi chip kwa kubonyeza F4. Dirisha la programu linaonekana. Sasa ni wakati wa kuwasha umeme kutoka kwenye ubao wa mkate. Unapaswa kutumia kitu kati ya Volts 6 na 12.

Sasa nenda kwenye chip -> autoprogram. Ikiwa dirisha la programu linafunga moja kwa moja programu ilifanikiwa.

LED inapaswa kuwa inang'aa kwa masafa ya sekunde moja.

Sasa angalia kwa karibu mpango huo ili kufahamu sintaksia.

$ regfile "m8def.dat"

$ kioo = 1000000

na $ regfile tunamwambia mkusanyaji aina ya chip iliyotumiwa jina la chip ya Arduino itakuwa "m328pdef.dat"

na kioo cha $ tunamwambia kasi ya cpu kuhusu 1MHz.

sanidi portb.0 = Pato

hiyo inamaanisha PB0 inapaswa kutenda kama pato.

Kwa njia, kifupi PB0 inamaanisha bandari B kidogo 0. Chip imegawanywa katika bandari kadhaa. Kila bandari hupewa barua kwa kitambulisho wazi. na kila bandari kidogo kutoka 0 hadi 7. Kwa mfano, ninaweza kuandika kaiti kamili kwenye rejista ya pato la bandari, ambayo itatoka kupitia pini za kibinafsi za bandari.

fanya

kitanzi

Hii ndio inamaanisha katika Arduino taarifa batili ya kitanzi. Yote kati ya amri hizo mbili yatarudiwa milele. (isipokuwa wengine lakini baadaye zaidi kuhusu hilo)

Bandari.0 = 1

subiri bandari 1.0 = 0 subiri 1

Hapa tunaongeza upepesi wa iliyoongozwa.

Portb.0 = 1 inaambia chip kubadili pb0 hadi 5V

subiri amri 1 wacha chip isubiri kwa sekunde moja. Ikiwa unataka kubadili mwongozo kwa kasi lazima ubadilishe amri ya kusubiri na subira sasa unaweza kuingiza wakati sasa kwa milliseconds n.k. subira 500. (waitus inamaanisha subiri kwa nanoseconds)

Portb.0 = 0 inaambia chip kubadili PB0 kuwa 0V.

Hatua ya 5: Ongeza Kitufe cha Kutumia Pembejeo

Ongeza Kitufe cha Kutumia Pembejeo
Ongeza Kitufe cha Kutumia Pembejeo

Sasa tunaongeza kitufe cha kuwasha iliyoongozwa ikiwa kitufe kimesisitizwa.

Ingiza kitufe kama inavyoonekana kwenye picha.

sasa andika katika programu ifuatayo.

$ regfile "m8def.dat"

$ kioo = 1000000 config portb.0 = pato config portd.7 = pembejeo Portd.7 = 1 fanya ikiwa pind.7 = 0 basi portb.0 = 1 portb.0 = 0 kitanzi

Ukipakia programu hiyo kwenye chip, iliyoongozwa inaangaza tu wakati kitufe kinabanwa. Lakini kwanini?

mpango huanza kufanana kama ile ya mwisho hadi

config portd.7 = pembejeo. Hiyo inamaanisha, pini PD7 ambaye aliunganisha na kitufe hufanya kama pembejeo.

Portd. 7 = 1 haibadilishi pini kwenda juu, lakini inamsha kipinzani cha ndani cha Atmega.

Ikiwa statemend inaonekana kidogo ikiwa umezoea arduino.

ikiwa unatumia taarifa hiyo ikiwa lazima utumie taarifa ya "basi". Katika sampuli hii ikiwa taarifa inatumika kwa shughuli za amri moja. Ikiwa unataka kutumia amri zaidi lazima uiandike kama hii.

ikiwa pind.7 = 0 basi

portb.0 = 1 kificho fulani kificho fulani kificho kingine portb.0 = 0 mwisho ikiwa

kwa matumizi haya ya taarifa ikiwa utatumia taarifa ya "mwisho ikiwa" mwishoni.

nini bado ni muhimu. Labda tayari umeiona. pembejeo haziulizwi na portx.x, lakini na pinx.x Unaweza kukumbuka hilo kwa urahisi. Matokeo yana "o" (bandari) katika neno na pembejeo zina "i" (pini).

Sasa ni zamu yako kucheza karibu kidogo.

Nitafundisha ijayo hivi karibuni (taarifa za kawaida kama wakati, chagua kesi, kwa, na anuwai.)

Ikiwa ungependa kufundishwa na unataka zaidi niambie kwenye maoni.

Ilipendekeza: