Saturday, May 20, 2017

1st programe එක ඇතුල් කරන ආකාරය-සිංහල

Post by -Hansa Tharuka




මෙතැනදී අපි කතා කරන්නේ atmega32A micro-controller එකක් use කරලා කොහොමද LED bulb එකක් blink කර ගන්නේ කියල. වැඩ අස්සේ හදිසියට ලියපු ලිපියක් නිසා අඩුපාඩු ඇති එහෙම ප්‍රශ්න තිබුනොත් comment එකක් දාන්න.

අවශ්‍ය ද්‍රව්‍ය-Components 

Atmega32A micro-controller x1
led x1
jumper wires
bread board x1
270Ω resistor x1

මුලින්ම අපි atmega chip එක programmer එකට සම්බන්ද කර ගන්න විදිය බලමු.
මේකෙදි කැමති නම් Development Board එකක් පාවිච්චි කරන්න පුළුවන් . නැත්නම් කෙලින්ම chip එක bread board එකේ ගහල වැඩේ කරගන්නත් පුළුවන්. පහු වෙද්දී අපි කොහොමත් PCB හදන නිසා කෙලින්ම bread board එකේ ගහලම program කරමු කියලයි මම කියන්නේ .ඒත් කැමති කෙනෙක්ට පුළුවන් atmega development board එකක් use කරන්න .
































ඉහත තියන විදියට usb asp/isp programmer එක චිප් එකේ

1)MOSI
2)MISO
3)SCK
4)RESET
5)VCC
6)GROUND

pin වලට connect කර ගන්න. ඒ කියන්නේ චිප් එකේ 6 වෙනි පින් එකේ ඉඳලා 11 වෙනි පින් එක වෙනකම් jumper wire වලින් සම්බන්ද වෙලා තියේවි.

USB ASP programmer එකේ MOSI පින් එක සම්බන්ද කරන්න අවශ්‍ය තැන පොඩි ඊතල සලකුණක් දකින්න පුළුවන් , ඒක පහසු වෙයි ඔයාලට MOSI පින් එක තියන තැන අදුන ගන්න.


දැන් programmer එක computer එකට සම්බන්ද කර ගන්න.

ඔයාලට පුළුවන් දැන් ATMEGA චිප් එක programm කරන්න පුළුවන් තත්වයේ තියද බලන්න.
ඔයාලගේ computer එකේ command prompt එක open කරලා
avrdude -p m16 -c USBasp කියන command එක ගහන්න. එතකොට
පහල තියනවා වගේ Fuses OK කියල ආවොත් ඔයාලා හරියට චිප් එක programmer එකට connect කරලා තියනවා.(උඩ m16 කියල තියන තැන atmega32 චිප් එකක් පාවිච්ච් කරනවා නම් m32 කියල දාන්න අමතක කරන්න එපා), 


Atmel Studio එක setup කරගන්න විදිය සඳුන් ලියපු මෙම post එකෙන් බල ගන්න.

දැන් අලුත් project එකක් open කර ගන්න. ඒක කරන විදිය ලියන්න ඕනි නෑ නේද 😋😋.

circuit එක 

මෙතැනදී resistor එකක් පාවිච්ච් නොකලොත් LED එක burn වෙන්න ඉඩ තියනවා . ඒ වගේම හරියට set කර ගත්තද කියල දෙපාරක් බලන .මොකද chip එකට damage වෙන්න පුළුවන්.
Bulb එක උඩ තියන විදියට set කර ගත්තට පසුව පහල තියන program එක චිප් එකට ඇතුළු කිරීමට පුළුවන්.


#include <avr/io.h>   //atmega වල input output handle කරන library එකට අදාළ header 
#include <util/delay.h> //delay සම්බන්ද function handle කරන header file එක  

int main(void)
{
DDRB |= 1 << PINB0; //B0 pin එක output pin එකක් ලෙස define කිරීම
while (1)
{
PORTB |= 1 << PINB0;  //B0 pin එකට අදාළ output එකේ voltage value එක 5V ලෙස assign කිරීම 
_delay_ms(100);       //මිලි තත්පර 100 ක delay එකක් තැබීම
PORTB &= ~(1 << PINB0); //B0 pin එකට අදාළ output එකේ voltage value එක 0V ලෙස assign කිරීම 
_delay_ms(100);
}
}

දැන් tools ගිහින්  >>> USBasp උඩ click කලාම programme එක වැඩ කරන්න ඕන.(සිංහල comment ඉවත් කරන්න නැත්නම් සමහර වෙලාවට warnings එන්න ඉඩ තියනවා ).
(PORTB |= 1 << PINB0;
PORTB &= ~(1 << PINB0);
) statement වලින් සිද්ද වෙන දේ ඉස්සරහ ලිපියකින් කියල දෙන්නම් . එතකම් ඒ ගැන හොයල comment එකක් දාන්න 😊.

post එක ඉවර කරන්න කලින් කියන්න දෙයක් තියනවා . මේ blog එක ඉස්සරහට කර ගෙන යන්න අපිට ඔයාලගේ අදහස් comment කරන්න . වැරදි තියනවා නම් හරි තව දේවල් එකතු වෙන්න ඕනි නම් හරි චොම්මෙන්ට් කරන්න . ඒ වගේම post ලියන්න අස ය ඉන්නවා නම් අපිට mail එකක් දාන්න නැත්නම් comment එකක් හරි දාන්න. ස්තුතියි ලිපිය කියෙව්වට .











4 comments: