Mündəricat:
- Təchizat
- Addım 1: Bascom və Quraşdırma
- Addım 2: Çipə daha yaxından baxaq
- Addım 3: Birinci Dövrə
- Addım 4: İlk Proqramı yazın
- Addım 5: Girişlərdən istifadə etmək üçün bir düymə əlavə edin
Video: Bascom AVR ilə Başlama: 5 Adım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:43
Bu, AVR mikrokontrollerinizi Bascom AVR ilə proqramlaşdırmağı öyrətmək üçün bir seriyanın başlanğıcıdır.
Bunu niyə edirəm.
Bu seriyadakı proqram nümunələrinin çoxunu Arduino ilə edə bilərsiniz.
Bəziləri daha asan və bəziləri daha çətindir, amma sonunda hər ikisi eyni nəzarətçi üzərində işləyəcək.
Ancaq hər inkişaf mühitində proqramlaşdırma üsulu fərqlidir. Arduino, əsas funksiyalar istisna olmaqla hər şey üçün bir kitabxanaya ehtiyac duyur. Bascom kitabxanalarla da işləyir, amma nadir hallarda birini daxil etməliyəm. Arduino ilə, bütün xüsusi avadanlıq parametrləri kitabxanalar vasitəsi ilə edilir. mikrokontrolörün həqiqi gücünə çox az təsir edirsiniz. Nəzarətçidə olan taymerlərdən başlayaraq. arduino ilə yenidən kitabxanaya ehtiyacınız var. işləyənə qədər taymeriniz varsa, başqa bir kitabxana ayarlarınızla toqquşa bilər. Bascom -da, arduino -nun məşğul olduğu açılış sektoru da daxil olmaqla bütün qurğulara pulsuz giriş əldə edə bilərsiniz. məsələn, bascomdakı bəzi kitabxanalar hansı taymerdən istifadə etmək istədiyinizi soruşur. digər tərəfdən, arduino kitabxananı özünüz yaratmağı çox asanlaşdırdığından, təbii olaraq yeni aparat və sensorların birbaşa kitabxanaya sahib olduğu bir platforma halına gətirir. tez -tez bascom -da bir çox araşdırma ilə əlaqəli olan və kitabxananın normal olaraq üzərinə götürəcəyi funksiyalar daha sonra proqram koduna əzmlə daxil edilməlidir. amma yaxşı xəbərdir ki, bascom icması da çox böyükdür, buna görə də hər bir fikir üçün bir həll var.
Bu, qismən bir inkişaf mühiti üçün istifadə olunan layihədən, qismən də proqramçı şəxsin nou-hausundan asılıdır.
amma bu seriali niye edirem. bir tərəfdən çox qənaət edir. Hər bir layihə üçün arduino lövhəsi almaq məcburiyyətində deyiləm. Məsələn: Noname Arduino uno, təxminən 12 avroya başa gəlir, üzərində olan nəzarətçi sabit bir funksiya üçün lazım olan minimum dövrə ilə cəmi 2,5 avroya başa gəlir, təxminən 4 avroya başa gəlir. Digər tərəfdən, dəstəklənən avr çiplərinin tam seçiminə sahibsiniz. atmegas 8 - 256 və attiny 8 - 2313 və təcrübəm olmayan bir çox xmega növü. Yalnız bir əl tanıya bilən bir servo və ultrasəs sensoru istifadə etmək və sonra zibil qutusunun qapağını açmaq istəyirsinizsə, mümkün olan ən kiçik çipdən istifadə edə bilərsiniz. Beləliklə, ikinci bir dil öyrənməyin bir çox səbəbi var.
Beləliklə, başlayaq
Təchizat
Bu, çipin sabit işləməsi və proqramlaşdırılması üçün tələb olunan minimum hissələrin siyahısıdır.
Test üçün çörək lövhəsi
Atmega 8-16PU (səhvən öldürsəniz 2 və ya 3 alsanız daha yaxşı olar)
7805 5V gərginlik tənzimləyicisi
10 kohm müqavimət
100nF film kondansatörü
10μF elektrolitik kondansatör
100μF elektrolitik kondansatör
çörək taxtası üçün bəzi tellər
Windows PC 7/8/8.1/10
ISP Proqramçısı (burada USBasp istifadə edəcəyəm, Amazon -da az pula ala bilərsiniz)
Bascom AVR (burada DEMO yükləyə bilərsiniz. Bütün funksiyaların kilidi açılır, ancaq çoxlu kod üçün kifayət qədər olan yalnız 4Kb ölçüdə kod yaza bilərsiniz).
İsteğe bağlı hissələr:
Rezistorlu LED -lər
açarları basmaq
layihəyə aid hissələr
Addım 1: Bascom və Quraşdırma
Faylı yükləyin və Bascom AVR quraşdırın. Quraşdırıldıqdan sonra son onay qutusu daxil olmaqla bütün hissələrini quraşdırın.
Bundan sonra kompüteri yenidən başladın, əks halda bascom başlamayacaq.
Yenidən başladıqdan sonra baskoma başlayın.
Seçimlər -> Proqramçıya gedin və siyahıdan USBasp seçin, parametrləri qeyd edin və Bascom'u bağlayın.
Usbasp qurmaq üçün bu proqramı istifadə edin. Bundan sonra kompüterinizi yenidən başladın. İndi USBasp -ı kompüterinizə qoşun və cihaz menecerini işə salın. USBasp libusb cihazlarında görünməlidir.
Yenə Stat Bascom və yeni bir fayl yaradın. Kompüterinizə qeyd edin və klaviaturanızdakı F7 düyməsini basın.
Kompilyator boş proqramı işə salır və tərtib edir. İndi proqramçının funksionallığını yoxlaya bilərsiniz.
Proqramçı pəncərəsini başlatmaq üçün klaviaturanızdakı F4 düyməsini basın. İndi qarşılıqlı əlaqəyə başlamaq üçün çipə keçin -> müəyyən edin. USBasp -dan gələn LEDlər qısa müddətdə yanıb sönməlidir. Cihazı oxuya bilməyən çip Id FFFFFF kimi bir mesaj almalısınız. Proqramçının işlədiyi yaxşı bir əlamətdir, amma heç bir çip tapmadı.
İndi ilk dövrəni qurmağa başlaya bilərik.
Addım 2: Çipə daha yaxından baxaq
Çipin ucuna baxsanız, çipin arduino lövhəsinə bənzəmədiyi görünür. Əlbəttə ki, bir Atmega8 istifadə edirik və Arduino uno üzərində Atmega328 var. Ancaq Pinout təxminən eynidir, ancaq Arduino Uno lövhəsinin çipi daha çox funksiyaya malikdir. Burada sancaqlar adları. VCC və GND enerji təchizatı pinləridir.
AREF və AVCC, analogdan rəqəmsal çeviriciyə istinad gərginliyi və enerji təchizatı üçün pinlərdir.
PB 0-7 PC 0-6 PD 0-7, birdən çox adamı olan ümumi təyinatlı giriş çıxış pinləridir.
sıfırlama pimi, adın yazdığı şeydir. Çipi yenidən başlatmaq üçün. Sıfırlama adının üstündəki xətt inkar deməkdir. Bu o deməkdir ki, çipi sıfırlamaq üçün onu 0V -a endirmək lazımdır.
Aşağıdakı pinlər üçün ayrı -ayrı təlimatlar tezliklə gələcək.
RXD TXD, UART seriyalı ünsiyyət üçün hardware pinləridir.
INT0 INT1, Hardware Interrupt pinləridir
XCK /T0 UART Saat mənbəyi /Taymer /Counter0 Saat mənbəyi
XTAL /TOSC pinləri 16 MHz -ə qədər xarici kristal üçün (20 MHz -ə qədər fərqli modellər) /Daxili RTC üçün Crystal pinləri üçündür.
T1 T0 -a bənzəyir
AIN pinləri analoq müqayisə üçün nəzərdə tutulub
ICP1 T0/T1 -ə bənzəyir
OC1A, pwm timer1 kanal A üçün aparat çıxış pinidir
SS / OC2 çipi SPI / OC1B kimi, lakin kanal B üçün pin seçin
MOSI MISO SCK / OC2, hardware SPI sancaqları və proqramlaşdırma / PWM çıxış taymeri üçün pinlərdir2
ADC0 - ADC5 analoq girişlərdir
SDA SCL, I2C aparatı üçün pinlərdir
Normal çip 4, 5 V -dan 5, 5 V -a qədər işləyə bilər Atmega 8L daha aşağı gərginliklə işləyə bilər.
Hətta bu çipin Arduino Uno -nun edə bilməyəcəyindən daha çox şey edə biləcəyini görürsünüz. Ancaq Arduino da bunu edə bilər, yalnız onu proqramlaşdırmalısınız.
Addım 3: Birinci Dövrə
İndi ilk dövrə qurmağın vaxtı gəldi.
Ümumiyyətlə, ilk dövrə nədir? Doğru! Bir LED yandıraq.
LED PB0 ilə bağlıdır. Çipin yanındakı rezistor 10k Ohm -a malikdir.
LED -in yanındakı rezistor 470 Ohm -a malikdir.
İndi USBasp -ı şəkildə göstərildiyi kimi Atmega ilə bağlaya bilərsiniz.
Ancaq gücü açmadan əvvəl proqramı yazaq.
Addım 4: İlk Proqramı yazın
Bascom -da yeni bir fayl yaradın və aşağıdakı mətni yazın.
$ regfile "m8def.dat"
$ Crystal = 1000000 konfiqurasiya portb.0 = çıxış portb.0 = 1 gözləmə 1 portb.0 = 0 gözləmə 1 döngə
Bundan sonra klaviaturanızda F7 düyməsini basaraq tərtib edin.
İndi F4 düyməsini basaraq çipi proqramlaşdıra bilərik. Proqramçı pəncərəsi görünür. İndi çörək taxtasından gücü açmağın vaxtı gəldi. 6 ilə 12 volt arasında bir şey tətbiq etməlisiniz.
İndi chip -> avtomatik proqrama keçin. Proqramçı pəncərəsi avtomatik olaraq bağlanarsa, proqramlaşdırma uğurla başa çatdı.
LED bir saniyədə yanıb -sönməlidir.
İndi sintaksisi başa düşməmək üçün proqrama daha yaxından baxın.
$ regfile "m8def.dat"
$ kristal = 1000000
$ regfile ilə tərtibçiyə Arduino çipinin adının "m328pdef.dat" olacağını söyləyirik.
$ crystal ilə ona CPU sürətini 1MHz haqqında söyləyirik.
config portb.0 = Çıxış
yəni PB0 çıxış kimi çıxış etməlidir.
Yeri gəlmişkən, PB0 qısaltması, B bit 0 portu deməkdir. Çip bir neçə limana bölünür. Hər bir limana aydın identifikasiya üçün bir məktub verilir. və hər bir port 0 -dan 7 -ə qədər bir az. Məsələn, fərdi çıxış pinləri vasitəsi ilə çıxacaq port çıxış reyestrinə tam bir bayt yaza bilərəm.
etmək
döngə
Arduinoda boşluq döngəsi ifadəsinin mənası budur. Bu iki əmr arasındakı hər şey əbədi olaraq təkrarlanacaq. (bəzi istisnalar istisna olmaqla, sonradan bu barədə daha çox)
Portb.0 = 1
1 portb.0 = 0 gözlə 1
Burada ledin yanıb -sönməsini göstəririk.
Portb.0 = 1, çipə PB0 çıxışını 5V -ə dəyişməsini bildirir
wait 1 əmri çipin bir saniyə gözləməsinə imkan verir. Ledi daha sürətli dəyişdirmək istəyirsinizsə, gözləmə əmrini gözləmə vaxtları ilə əvəz etməlisiniz, indi bir müddətə milisaniyələrlə daxil ola bilərsiniz. waitms 500. (waitus nanosaniyələrdə gözləmək deməkdir)
Portb.0 = 0, çipə PB0 çıxışını 0V -ə dəyişməsini bildirir.
Addım 5: Girişlərdən istifadə etmək üçün bir düymə əlavə edin
İndi düyməyə basıldığı təqdirdə led'i yandırmaq üçün bir düymə əlavə edirik.
Düyməni şəkildə göstərildiyi kimi daxil edin.
İndi aşağıdakı proqramı yazın.
$ regfile "m8def.dat"
$ crystal = 1000000 konfiqurasiya portb.0 = çıxış konfiqurasiyası portd.7 = giriş Portd.7 = 1 pind.7 = 0, sonra portb.0 = 1 başqa portb.0 = 0 döngə
Bu proqramı çipə yükləsəniz, led yalnız düyməyə basıldıqda yanar. Bəs niyə?
Proqram sona qədər eyni şəkildə başlayır
config portd.7 = giriş. Bu o deməkdir ki, düyməyə qoşulan PD7 sancağı giriş rolunu oynayır.
Portd.7 = 1, pimi yüksək vəziyyətə gətirmir, ancaq Atmega -nın daxili çəkmə müqavimətini aktivləşdirir.
Arduino -ya alışmış olsanız if statemend bir az qəribə görünür.
if ifadəsini istifadə edirsinizsə, "sonra" ifadəsini istifadə etməlisiniz. Bu nümunədə if ifadəsi tək əmr əməliyyatları üçün istifadə olunur. Daha çox əmr istifadə etmək istəyirsinizsə, bunu belə yazmalısınız.
pind.7 = 0 olarsa
portb.0 = 1 bəzi kod bəzi kod bəzi kod başqa portb.0 = 0 əgər bitərsə
if ifadəsinin bu istifadəsi üçün sonunda "if if" ifadəsini istifadə etməlisiniz.
hələ nə vacibdir. Bəlkə də artıq görmüsünüz. girişlər portx.x ilə deyil, pinx.x ilə sorğu edilir. Bunu asanlıqla xatırlaya bilərsiniz. Çıxışlarda sözdə "o" (port) və girişlərdə "i" (pin) var.
İndi bir az ətrafında oynamaq növbənizdir.
Növbəti təlimatçım tezliklə gələcək (standart ifadələr while, case, for və dəyişənlər kimi.)
Təlimatlarımı bəyənirsinizsə və daha çoxunu şərhlərdə söyləyin.
Tövsiyə:
Uzun Menzilli Simsiz Temperatur və Titrəmə Sensorları ilə İşə Başlama: 7 addım
Uzun Menzilli Kabelsiz Temperatur və Vibrasiya Sensorları ilə İşə Başlama: Bəzən vibrasiya bir çox tətbiqdə ciddi problemlərin səbəbidir. Maşın şaftlarından və rulmanlardan tutmuş sabit disk performansına qədər, vibrasiya maşın zədələnməsinə, erkən dəyişdirilməsinə, aşağı performansa səbəb olur və dəqiqliyə böyük zərbə vurur. Monitorinq
Raspberry Pi 3 -də Raspbian Buster quraşdırılması - Raspberry Pi 3b / 3b+ilə Raspbian Buster -ə Başlama: 4 Addım
Raspberry Pi 3 -də Raspbian Buster qurmaq | Raspberry Pi 3b / 3b+ilə Raspbian Buster -ə Başlama: Salam uşaqlar, bu yaxınlarda Raspberry pi təşkilatı Raspbian Buster adlanan yeni Raspbian ƏS -ni istifadəyə verdi. Raspberry pi üçün Raspbian -ın yeni bir versiyasıdır. Beləliklə, bu gün bu təlimatlarda Raspberry Buster OS -ni Raspberry pi 3 -ə necə quracağınızı öyrənəcəyik
WiFi üzərindən ESP 32 Kamera Video Axını - ESP 32 CAM lövhəsi ilə işə başlama: 8 addım
WiFi üzərindən ESP 32 Kamera Video Axını | ESP 32 CAM lövhəsi ilə işə başlayın: ESP32-CAM, təxminən 10 dollara başa gələn ESP32-S çipi olan çox kiçik bir kamera moduludur. OV2640 kamerası və ətraf cihazları birləşdirmək üçün bir neçə GPIO ilə yanaşı, t ilə çəkilmiş şəkilləri saxlamaq üçün faydalı ola biləcək bir microSD kart yuvasına da malikdir
Arduino IDE ilə Esp 8266 Esp-01-ə Başlama - Arduino Ide -də Esp Lövhələrinin Qurulması və Esp -in Proqramlaşdırılması: 4 Addım
Arduino IDE ilə Esp 8266 Esp-01-ə Başlama | Esp Boardlarını Arduino Ide-də quraşdırmaq və Proqramlaşdırma Esp: Bu təlimatlarda, Arduino IDE-də esp8266 lövhələrinin necə qurulacağını və esp-01-in proqramlaşdırılmasını və ona kod yükləməyi öyrənəcəyik. Esp lövhələri o qədər populyar olduğu üçün bir təlimat düzəltməyi düşündüm. bu və insanların çoxu problemlə üzləşir
HC05 Bluetooth Modulu və Arduino ilə İşə Başlama [Dərslik]: 6 addım
HC05 Bluetooth Modulu və Arduino ilə İşə Başlama [Dərslik]: Bu və digər möhtəşəm dərsləri ElectroPeak -in rəsmi saytında oxuya bilərsiniz Bu dərslikdə HC05 Bluetooth Modulu və Arduino lövhəsindən istifadə edərək Bluetooth ilə necə ünsiyyət qurmağı və məlumat göndərməyi öyrənəcəksiniz. Bu yazının sonunda öyrənəcəksiniz