servo standar
servo mini
konfigurasi pin pada tiap merk servo
berikut merupakan gambar pemberian pulse pada data sheet servo Hitec-HS 311:
pertanyaan yang muncul:
bagai mana menggerakan servo ke posisi 81 derajat?,33 derajat, 10 derajat?.
kita ganti saja logika berfikirnya, misal saya ubah menjadi :
- -90 derajat (90 derajat kekiri) = 0 derajat
- 0 derajat (tengah-tengah) = 90 derajat
- +90 derajat (90 derajat kekanan) = 180 derajat
- lebar high pulse 600us = 0 derajat
- lebar high pulse 1500us= 90 derajat
- lebar high pulse 2400us= 180 derajat
ini bukan merubah servo tetapi merubah pola berfikir untuk mempermudah pemrograman.
selisih lebar pulse high tiap derajat adalah (2400us - 600us) /180 = 10us.
maka untuk menggerakan servo sebesar 1 derajat maka lebar pulsa logic 1 adalah 600us + 1 x 10us.
kesimpulan :
contoh program dalam bahasa C:
- lebar pulse high (logic 1) = 600us + derajat yng diinginkan x 10us
- lebar pulse low nya (logic 0) saya gunakan 10 milisecon
contoh program dalam bahasa C:
#include <mega16.h> // microcontroller ATmega 16
#include <delay.h>
#define servo PORTC.0 // servo connected with PORTC.0
typedef unsigned char unchar; // unsigned char = unchar
void set_servo(unchar derajat) // function to control servo 1
{
unchar n;
servo=1; // berikan output logic 1
delay_us(600); // selama 600us
for(n=0; n < derajat; n++){ // ditambah 10us X derajat yg diinginkan
delay_us(10);
};
servo=0; // keluarkan output logic 0
delay_ms(10); // tunda selama 10 ms
};
void main(void){
DDRC = 0x01;
PORTC= 0x00;
while(1){
set_servo(100); //menggerakan servo ke sudut 100 derajat
delay_ms(1000);
set_servo(30); // menggerakan servo ke sudut 30 derajat
delay_ms(1000);
}
}
Salah satu logika cara untuk mengatur speed servo:
jika servo kita perintahkan untuk bergerak menuju ke sudut tertentu maka servo akan bergerak ke sudut tersebut dengan kecepatan penuh , jika kita gerakan servo tiap step maka servo akan bergerak lambat.
misal :
dari posisi awal servo 0 derajat kemudian kita perintah untuk bergerak ke 30 derajat maka servo akan langsung bergerak dengan kecepatan penuh ke sudut 30 derajat. utuk memperlambat kita gerakan tiap 1 derajat. maka servo akan bergerak dari 0 ke 1 derajat dulu, 2 derajat, 3 ,4.... dst sampai ke 30 derajat (tujuan), jika step kita perbesar maka gerakan akan semakin cepat , misal menggunakan 5 step, maka servo akan bergerak dari 0 derajat , 5 derajat , 10 derajat.. dst sampai 30 derajat (tujuan).
jangan lupa untuk menunda beberapa mili secon tiap step.
lihat video 24 serial servo controller buatan saya:
komunikasi menggunakan USART
yang paling kiri adalah servo hitec HS-322
yang lainya servo towerpro MG945R
yang lainya servo towerpro MG945R
source code dan simulasi proteus download disini !!
setingan crystal yang saya gunakan external crystal 16MHZ (sesuaikan dengan milik anda), jika crystal tidak sama dengan program maka servo tidak akan bergerak sesuai keinginan,
password to open zip file : microku.blogspot.com
setingan crystal yang saya gunakan external crystal 16MHZ (sesuaikan dengan milik anda), jika crystal tidak sama dengan program maka servo tidak akan bergerak sesuai keinginan,
password to open zip file : microku.blogspot.com
74 comments:
ada contoh programnya buat stepny gak gan????
mas epong: logika nya kira2 seperti ini,
sudut=100
speed=10
for (i=0;i<=sudut;i+=speed){
set_servo(i);
delay_ms(100/speed);
}
ok thanks mas,
nanti q coba
Ijin ya mas..untuk meng-unduh
Mudah PCB
#include // microcontroller ATmega 16
#include
#define servo PORTC.0 // servo connected with PORTC.0
typedef unsigned char unchar; // unsigned char = unchar
void set_servo(unchar derajat) // function to control servo 1
{
unchar n;
servo=1; // berikan output logic 1
delay_us(600); // selama 600us
for(n=0; n < derajat; n++){ // ditambah 10us X derajat yg diinginkan
delay_us(10);
};
servo=0; // keluarkan output logic 0
delay_ms(10); // tunda selama 10 ms
};
void main(void){
DDRC = 0x01;
PORTC= 0x00;
while(1){
set_servo(100); //menggerakan servo ke sudut 100 derajat
delay_ms(1000);
set_servo(30); // menggerakan servo ke sudut 30 derajat
delay_ms(1000);
}
}
mas program ini sudah saya coba tapi kok gak bisa ya mas,pa ada yg salah????
kl diprogram utama cuma satu sudut aja bisa tp kl uda di kasih 2 sudut yg berbeda kok gak bisa.bingung saya mas
bang gent: silahkan bang gent..
mas epong :
di coba di hardware langsung atau di simulasi?
kalo menggunakan simulasi silahkan gunakan yang ada.
misal akan membuat 2 gerakan atau lebih harus di delay setelah perintah. jika tidak maka yang di eksekusi adlah perintah yang terakhir.
contoh:
set_servo(0);
delay_ms(500);
set_servo(40);
delay_ms(500);
set_servo(100);
delay_ms(500);
set_servo(30);
delay_ms(500);
jika tanpa delay seperti ini:
set_servo(30);
set_servo(100);
maka servo cuma akan bergerak ke 100 derajat saja..
uda mas bisa gerak tapi perubahan sudutnya kecil banget tdk sesuai dgn sebenarnya
periksa lagi settingan clock / crystalnya nya. harus sesuai antara di codevision dan di mikronya (fuse bit)
sudah mas tp q pake 12Mhz, apa itu berpengaruh ya mas????
servo controller yng saya buat juga menggunakan 12Mhz. seharusnya tidak begitu berpengaruh.
void set_servo(unchar sudut)
{
unchar n;
servo=1;
//delay_us(600); // selama 600us
for(n=0; n < sudut; n+=5){
delay_us(10);
};
servo=0;
delay_ms(10);
}
void set_speed(unsigned char sudut , unsigned char speed)
{
unchar i;
set_servo(sudut);
for (i=1;i<=sudut;i+=speed){
set_servo(i);
delay_ms(100/speed);
}
}
void main(void){
DDRC = 0x01;
PORTC= 0x00;
while(1){
set_speed(0,2);
delay_ms(1000);
set_speed(90,2);
delay_ms(1000);
set_speed(180,2);
delay_ms(1000);
set_speed(90,2);
delay_ms(1000);
}
}
dr program diatas bisa gerak secara halus mas tapi kok pergerakannya servo kembali ke 0drjt dl baru ke sudut selanjutnya
misal 0 ke 90,trs ke 180 servo ke 90 stlh itu ke o dl baru ke 180, tolong dikoreksi mas>>>>>>>>>>>
servonya type berapa ya?
itu di prosedur set_servo
for (i=0;i<sudut;i+=5);
berarti penambahan i nya kelipatan 5
jika servo di set < 5 derajat.
berarti delay logic satunya cuma 10us.
kalo di set 90 derajat delay logic satunya 1800us.
kalo di set 180 derajat delay logic nya 3600us
q pake proteus mas,trs program yg bener biar bs atur kecepatannya gmn mas? q mau bikin robot tangan tp gak bs gerakin servo secara pelan mas
mohon bantuannya mas
silahkan dicoba dulu di servonya langsung...
besok kalo sempat tak update lg blognya..
ok mas.thx
Pak, punya fixer CodeVisionAVR 2.05.6?
Terima kasih.
Cara akses servo yang MG945R gmana?
Apakah rumusnya sama dengan yang di atas, mengingat MG945R adalah servo digital.
sama saja,, semua servo controlnya sama. yang membedakan analog dan digital adalah sistem yang di gunakan di dalam servo tersebut. saya dah mencoba di servo towerpro, hitec hs-311 hs-322 hs-5625 termasuk MG945R dan servo mini.
Berarti cara akses analog dan digital sama y mas, rumus di atas sudah saya coba terapkan pada servo Futaba S3003 dan memang berhasil, tapi sya coba terapkan ke servo digital JR ES539 tapi gerakannya aneh, saya jga pernah baca sebuah artikel untuk mengakses servo digital digunakan data berbentuk heksadesimal.
wah, saya belum mencoba kedua servo itu, yg saya tahu servo Futuba 53003 dan JR ES 539 adalah analog servo (servocity.com).
Hs-5625 dan Towerpro MG945R adalah servo digital (www.hitecrcd.com) sedangkan servo Hs-311 dan Hs-322 adalah servo analog (www.hitecrcd.com) saya sudah mencobanya dan dapat bekerja dengan sangat baik. ada baiknya anda mengecek power supply yang di gunakan. sy menggunakan UBEC 3A. ketika saya coba dengan regulator 7805 saja, servo tidak dapat bekerja dengan baik. thx
kalau pakai codevison AVR gimana gan logikanya ?
saya memakai codevision avr mas..
salam kenal mas, kalo mau ngontrol lebih dari satu servo dari mikro langsung (g pake servo controler) contoh programnya gemana mas?
mohon pencerahnnya...
#define servo0 PORTC.0
#define servo1 PORTC.1
void set_servo(unchar derajat0,unchar derajat1)
{
unchar n;
servo0=1;
servo1=0;
delay_us(600);
for(n=0; n < derajat0; n++){
delay_us(10);
};
servo0=0;
servo1=1;
delay_us(600);
for(n=0; n < derajat1; n++){
delay_us(10);
};
servo0=0;
servo1=0;
delay_ms(10);
};
siang mas dan salam kenal,saya ada kendala untuk mendownload program cv avr 2.05.03 ke micon atmega328 ,ntu gman ya caranya ? (saya masih pemula dalam micon atmega)
kemudian tentang kabel peripheral untuk mendownloadnya apa ada gambar skema nya ?
kalo boleh,saya minta dikirim via email mas,ini email saya budax_leuweung15@yahoo.com
terima kasih sebelumnya
salam kenal.
Bagaimana cara menggerakkan posisi servo dg komunikasi serial USART menggunakan bhs C cvAVR, saya menggunakan atmega328.
Mohon contoh dan penjelasannya.
trimakasih.
coba dengan membuat program usart dulu, kalo sudah bisa kirim-terima data, tinggal data yang di terima dipakai untuk menggerakan servo..
mas contoh program untk menggrakn servo 90 derajat pd saat servo memutar perlahan itu gmn mas??
fred_siga@ymail.com
tlong jwaban'na mas, terima kasih..
coba pake HItec HS-311 lancar
pake MG945R jadi gedek2,
pake DF15SR continues jd muter terus,
perbedaannya dimana gan antara ketiga servo ane bingung -_-
@fred_siga : bisa dilihat pos ane yang baru mas (pengatur posisi kamera).. mungkin bisa jadi reverensi..
@kang uyut : servo continous pulse 1500us = stop , < 1500us = cw , > 1500us = ccw , biasanya ada potensio buat tuning biar stop di 1500us..
biasanya kalo servo metal gear pulse nya 1ms-2ms jadi gak 0-180 derajat dan butuh arus yang besar.. Kalo hs311 standar servo bukan metal gear torsi kecil makan arusnya kecil..
mas
sya mencoba servo futaba s3003, kenapa ya kok gada program yg cocok buat servonya..
mohon bantuannya mas untuk list program codevisionnya..
gak cocoknya kenapa ya mas.. maaf saya belum pernah mencoba servo merk tersebut. coba liat datasheet dan bandingkan dengan yng lain..
kalau yang ini maksudnya apa ya mas::
for(n=0; n < derajat; n++){ // ditambah 10us X derajat yg diinginkan
delay_us(10);
apakah derajatnya sesuai yg qt inginkan??
Saya dapat di data sheetnya untuk futaba s3003 begini mas = 1520-1900us..
nahh list programnnya seperti apaaa yaa??
mohon bimbingannyaa..
Terimakasih banyak sebelumnya...
itu rumus pengali input perintah sudutnya.. jadi delay 10us akan diulang sebanyak derajat yang diinginkan (for(n=0....).
Bang, ini saya lg pake program codevision AVR.
Saya butuh coding memperhalus kecepatan motor servo dari sudut menuju sudut yang diinginkan.
Ada contohnya ngak ?
silahkan ke sini bang,,,
source code,skema,ada disono,,
http://microku.blogspot.com/2013/04/pengatur-posisi-kamera.html
Bang, klu langsung tambahin coding yang saya punya, gimana ?
Ini codingnya:
#include
// Standard Input/Output functions
#include
#include ;
//deklarasi servo
int servo_num;
int servo_poz[7]={0,0,0,0,0,0,0};
// Declare your global variables here
// Timer 0 overflow interrupt service routine
#define Servo1 PORTD.2
#define Servo2 PORTD.3
#define Servo3 PORTD.5
#define Servo4 PORTD.6
#define Servo5 PORTD.7
unsigned int i = 0;
unsigned char dataServo1, dataServo2=0;
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
if (i>937)
i=0;
else
i++;
if (i
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0xFF;
DDRB=0x00;
// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0xFF;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x01;
TCNT0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x01;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x47;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
#asm("sei")
while (1)
{
// Place your code here
printf ("\n Ready");
delay_ms(200);
while (getchar()== 255)
{
/* printf("\n ServoNum?"); */
servo_num = getchar();
/* printf("\nServoNo: %d",servo_num); */
if(servo_num > 7) {
putsf("\nNoServoFound"); }
else {
servo_poz[servo_num] = getchar();
/* printf("Pos %d",servo_poz[servo_num]); */
};
};
};
}
di tandai ya bang tambahannya...
tq...
Bang, gimana?
Coding abang bisa dikombinasi dgn coding saya ngak ?
Saya coba ngak bisa tuh
gak bisa gimana bang.. ane kagak dong program abang ini arahnya kemana..
di analisis aja bang error notification nya.. kan dah jelas ditunjukan errornya kalo bikin code pake cvavr..
jadi sya pake 600us untuk yg 0derajat sama 1500us untuk yg 90
dicoba saja mas.. saya belum punya servonya jadi gak bisa komen banyak.. trial and error saja.
mohon pencerahannya..
kira" programnya gimana ya kalau servo akan bergerak dari sumbu x ke y jika tombol ditekan trus dan servo berhenti ketika tombol di lepas.. newbie abis...
void main(){
i=0;
while(1)
if (tombol==0){
i++;
if(i>180) i=0;
delay_ms(200);
}
set_servo(i);
}
}
mohon pencerahannya mas...
klo untuk ngatur speed servo kan main perstep pergerakan biar gk langsung ke sudut yg diinginkan...
nah klo untuk mengatur bebebrapa servo sekaligus dimana besarnya sudut dan speed yang berbeda tapi geraknya bersamaan itu gimana yh??
soalnya sy nyoba yg ada di comment di atas itu malah ketika servo yg satu gerak, yang lainnya jadi lemes...
mohon pencerahannya mas...
Mas ini tolong dikoreksi yang salah yang mana, kok gk bisa pace coding ini ..
variable i itu int mas ..
void full_cw()
{
for(i=0;i<65;i++)
{
servo=1;
delay_us(600);
servo=0;
delay_us(2400);
}
terima kasih mas ..
servonya apa, kalo buat servo logika 1 nya kisaran 600us - 2400us. logika 0 nya sekitar 10ms -20ms mas
kalo mau gerak kanan kiri kanan kiri.
void full_cw()
{
for(i=0;i<65;i++)
{
servo=1;
delay_us(600);
servo=0;
delay_ms(20);
}
for(i=0;i<65;i++)
{
servo=1;
delay_us(2400);
servo=0;
delay_ms(20);
}
}
Sudah saya coba mas, kok tetep gk bisa ya??
#define servo PINC.0
int i;
oh iya mas, sekalian nanya kalau mrogram sensor PIR it gmn ya?? soalnya sudah saya coba tetep gk mau..
Untuk mengetahui servo logika 0 atau 1 gmna ya mas??
soalnya ini saya pake servo yang kecil itu, servo mini.. buat uji coba
Rencana mungkin pake servo yang standart.. (Untuk Tugas Akhir mas)
Mohon bantuannya, terima kasih ...
wah sudah bisa, ternyata cuma PINC.0 saya ganti jadi PORTC.0..
nanya mrogram Sensor PIRnya aja mas.. heheee
terima kasih
sensor pir outputnya = 1 jika mendeteksi, 0 jika tidak mendeteksi
PIN untuk membaca input
PORT untuk output
gk bisa mas program sensor pirnya ..
if (PINA.0==1)
{
PORTC=0b11111111;
}
apa ada langkah awalan khusus saat new project di avrnya mas??
kamu harus ngeset PINA.0 jadi input
#include <...........
void main(){
DDRA.0=0;
PORTA.0=0;
DDRC=0b11111111;
PORTC=0b00000000;
while(1){
if (PINA.0==1)
{
PORTC=0b11111111;
}
}
}
kamu harus ngeset PINA.0 jadi input
#include <...........
void main(){
DDRA.0=0;
PORTA.0=0;
DDRC=0b11111111;
PORTC=0b00000000;
while(1){
if (PINA.0==1)
{
PORTC=0b11111111;
}
}
}
bisa mas ..
setelah mendeteksi, perubahan tegangan vout dari 4v ke 0v agk lama, dari situ saya bingung kok nyala LED lama tidak mati2 ..
saya setting di vrnya, dan skrng uda bisa langsung 0v saat tidak mendeteksi adanya manusia .. thanks mas
Mas maaf saya coba kode yg pake set_speed tapi ga saya ubah penambahannya kok 0derajat servonya ga ditengah ga dipinggir ya? clock yg saya pake 12Mhz mega8535 servonya s0361 hobbyking
gimana ya,, emm anu,, coba cek fusebit dsb dll..
mas mw nanya nh program untuk mengendalikan putaran motor servo dengan sensor jarak tu gmna ya mas, dengan putaran servo 360 derajat. saya menggunakan sensor ultrasonik srf04 untuk menggerakan motor servo sehingga pintu dapat terbuka dan tertutup.
ya di buat saja..
baca sensor jaraknya..
misal jarak kurang dari 5 meter
set servo sekian derajat untuk kondisi buka pintu..
gmna program di codevision Avr unruk membaca sensor ultrasonik nya. saya dah nyoba tapi gx mau tampil di LCD.
di posting saja code mu,
#include
#include
#include
// Alphanumeric LCD functions
#asm
.equ __lcd_port=0x15; PORTC
#endasm
#include
#define TRIGGER PORTB.4
#define ECHO PINB.5
unsigned char s_1[16],s_2[16];
long timer=0,xTimer=0;
float pulsa,jarak;
// Timer1 overflow interrupt service routine
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{
// Place your code here
xTimer++;
}
void bacajarak() {
TRIGGER=1;
delay_us(10);
TRIGGER=0;
while(ECHO==0);
TCNT1=0;
xTimer=0;
while(ECHO==1);
timer=TCNT1;
pulsa = (float)xTimer * 65535 * 0.5 + (float)timer * 0.5;
jarak=pulsa/30.034;
lcd_clear();
sprintf(s_1,"pulsa=%5.2f",pulsa);
sprintf(s_2,"jarak=%fcm",jarak);
lcd_gotoxy(0,0);
lcd_puts(s_1);
lcd_gotoxy(0,1);
lcd_puts(s_2);
delay_us(500);
}
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=Out Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=P State4=0 State3=T State2=T State1=T State0=T
PORTB=0x20;
DDRB=0x10;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 11059.200 kHz
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: On
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x01;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x04;
// USART initialization
// USART disabled
UCSRB=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC disabled
ADCSRA=0x00;
// SPI initialization
// SPI disabled
SPCR=0x00;
// TWI initialization
// TWI disabled
TWCR=0x00;
// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTC Bit 0
// RD - PORTC Bit 1
// EN - PORTC Bit 2
// D4 - PORTC Bit 4
// D5 - PORTC Bit 5
// D6 - PORTC Bit 6
// D7 - PORTC Bit 7
// Characters/line: 8
lcd_init(8);
// Global enable interrupts
#asm("sei")
while (1)
{
// Place your code here
bacajarak();
delay_ms(100);
}
}
klik "project " di menu bar, pilih "configure", muncul menu box pilih "c compiler" , di bagian "(s)printf feature" pilih "float,width,precission".. klik ok
build project dan coba lagi
bang, dah saya setting seperti perintah.kok pas di build all project files muncul tulisan (tanda silang) Evaluation version code limit exceeded ! tu kenapa ya bang.
CodeVisionAVR that you use is a limited version!
jd solusi nya gmna bang
http://microku.blogspot.com/2011/10/codevisionavr-v2053.html
mas file cvavr2.exe yg di crack gx bisa di copy di folder Bin kyak nya file nya kena virus.. bisa tlong dikirim crack nya gx mas, trims
Mas sh mukti: Izin nyimak , ilmunya pas banget ma tugas kuliah saya saat ini , TERIMA KASIH SEBELUMNYA
kk, boleh minta tolong ajarin tentang motor servo..
saya pake 2 pus button, saat push button 1 di tekan, servonya jalan, terus saat push button ke dua ditekan push servonya berhenti,
itu kodingannya gimana ya kk. terima kasih
tutorial dan sebagainya akan saya pindahkan ke web yang baru di : www.team-ichibot.com , artikel akan selalu kita update,
itu gimana cara nya kk, ??
buat servo bergerak saat push button 1 ditekan, dan berhenti saat push button 2 di tekan.
Post a Comment