Bang yg aku tanyain bukan itu tp pada coding PID LF yg sebelumnyakan cuma deklarasi PWM
TCCR1A=0xA1;
TCCR1B=0x0c;
maksud saya hubungannya lpwm dan rpwm dengan OC1A dan OC1B apa?? bukan kakinya atmel
Maaf bang repotin Maju trs koera…
lpwm dan rpwm itukan klo di program adalah variabel pwm_kanan dan pwm_kiri. niliai ini dupdate dari perhitungan PD (prosedure PID). kemudian baru dipanggil prosedure keluarkan(). dimana hasil pwm_kanan dan pwm_kiri dicek apakah negatif, positif, atau diantaranya. kalo negatif berari pwm dibuat positif. tapi arah motor menjadi mundur. kalo hasil pwm postif, pwm tetap dan arah juga tetep maju.kalo diantaranya (lihat program prosedure keluarkan().) Kemudian HUb ama OC1A, ya jelas ada hubungannya. Kalo kamu liat Postingan Timer 1. Keluaran OC1A/OC1B kan tergantung dari isi register OCR1A/OCR1B. maka dari itu, agar PWM kita keluar, hasil perhitungan PWM kita tadi dimasukkan ke Variabel OCR1A/OCR1B.(lihat programnya..sudah jelas banget kok.). Ingat, itu tadi baru PWMnya lo, blom kontrol arahnya. Kalo kontrol arahnya , ya tergantung hardware driver motormu. yang penting di sini, kalo hasil perhitungan negatif, arah motor harus terbalik arahnya. dan nilai PWM harus selalu bernilai Positif..!! SEmoga sukses..!
bingung bang..
ane coba bikin sendiri kok gk ngaruh ya.. tapi kalo kodingnya jiplak punya org kok bisa…
Bang yg program line follower PID saya coba msh lom bisa…
gak bisanya apa? pwm di motor ganti2 nggak?
iya mas itu makdsudku…
d pwm motor aku liad pake osiloskop ttep….
gimana mas itu???
satu lagi… di source nya abang nilai bts[0]-bts[7]=100; dia,bil dari mana??
Dipunyaku jalan tu, kamu copy paste, trus pasti ada erornya kan? yang x biasanya ama tanda ” ” di icludenya . kamu yakin compilenya gak eror? Trsus Sensormu yakin udah bisa ? Program ini cuman untuk 8 buah sensor lo. dan semua sensor tidak boleh ada yang ngacau 1 pun. Trus bts[0]-bts[7]=100; itu adalah batas treshold untuk konversi ke binernya. jika pembacaan adc < bts tadi, maka akan berlogika 0. dan sebaliknya.
Warning: Tidak boleh ada 1 sensor pun yang salah bacanya, soalnya programnya ngecek 8 sensor semua. (seperti AND ). gak boleh ada yang salah coba liat proseedure void nilai_error(). disitu adalah maping dari sensornya untuk mendapatkan error. kalo error nggak dapet. PWM nya ya nggak akan berubah ubah.
Waduh, gimana caranya ya? di sini mau jalan e. Ku coba copy paste dari blog ini , mau jalan e? Kamu pakai compiler apa? CAVR ? Fuse bit microcontrollermu udah kamu seting? kamu pakai uC apa?
wah iya bang,:D
akhirnya bisa.. hehe…
Hmm, trs untuk buat sistem minimumnya pada aplikasi sebenarnya gmn?? soalnya saya pk proteus buat simulasinya???
untuk sistem minimumnya ya sama saja , seperti kamu pakai proteus. digambar skematik itu udah ada to? rangkaian sistem minimum ya cuman seperti itu. Jangan lupa kamu udah punya downloader belum?
Wahduh bingung master maksudnya komponen yg harus ada untk membuat sistem minimum tersebut (
Bang yg aku tanyain bukan itu tp pada coding PID LF yg sebelumnyakan cuma deklarasi PWM
Maju trs koera…
TCCR1A=0xA1;
TCCR1B=0x0c;
maksud saya hubungannya lpwm dan rpwm dengan OC1A dan OC1B apa?? bukan kakinya atmel
Maaf bang repotin
lpwm dan rpwm itukan klo di program adalah variabel pwm_kanan dan pwm_kiri. niliai ini dupdate dari perhitungan PD (prosedure PID). kemudian baru dipanggil prosedure keluarkan(). dimana hasil pwm_kanan dan pwm_kiri dicek apakah negatif, positif, atau diantaranya. kalo negatif berari pwm dibuat positif. tapi arah motor menjadi mundur. kalo hasil pwm postif, pwm tetap dan arah juga tetep maju.kalo diantaranya (lihat program prosedure keluarkan().) Kemudian HUb ama OC1A, ya jelas ada hubungannya. Kalo kamu liat Postingan Timer 1. Keluaran OC1A/OC1B kan tergantung dari isi register OCR1A/OCR1B. maka dari itu, agar PWM kita keluar, hasil perhitungan PWM kita tadi dimasukkan ke Variabel OCR1A/OCR1B.(lihat programnya..sudah jelas banget kok.). Ingat, itu tadi baru PWMnya lo, blom kontrol arahnya. Kalo kontrol arahnya , ya tergantung hardware driver motormu. yang penting di sini, kalo hasil perhitungan negatif, arah motor harus terbalik arahnya. dan nilai PWM harus selalu bernilai Positif..!! SEmoga sukses..!
bingung bang..
ane coba bikin sendiri kok gk ngaruh ya.. tapi kalo kodingnya jiplak punya org kok bisa…
Bang yg program line follower PID saya coba msh lom bisa…
gak bisanya apa? pwm di motor ganti2 nggak?
iya mas itu makdsudku…
d pwm motor aku liad pake osiloskop ttep….
gimana mas itu???
satu lagi… di source nya abang nilai bts[0]-bts[7]=100; dia,bil dari mana??
Dipunyaku jalan tu, kamu copy paste, trus pasti ada erornya kan? yang x biasanya ama tanda ” ” di icludenya . kamu yakin compilenya gak eror? Trsus Sensormu yakin udah bisa ? Program ini cuman untuk 8 buah sensor lo. dan semua sensor tidak boleh ada yang ngacau 1 pun. Trus bts[0]-bts[7]=100; itu adalah batas treshold untuk konversi ke binernya. jika pembacaan adc < bts tadi, maka akan berlogika 0. dan sebaliknya.
Warning: Tidak boleh ada 1 sensor pun yang salah bacanya, soalnya programnya ngecek 8 sensor semua. (seperti AND ). gak boleh ada yang salah coba liat proseedure void nilai_error(). disitu adalah maping dari sensornya untuk mendapatkan error. kalo error nggak dapet. PWM nya ya nggak akan berubah ubah.
Bang pwm di motor tidak ganti ganti…
Gimana ya bang….
Waduh, gimana caranya ya? di sini mau jalan e. Ku coba copy paste dari blog ini , mau jalan e? Kamu pakai compiler apa? CAVR ? Fuse bit microcontrollermu udah kamu seting? kamu pakai uC apa?
wah apa itu bang gk ngerti:(
eh misal saya buat source spti ini mn yg salah bang??? makasih bang sebelumnya uda bimbing sejauh ini
#include
#include
#define enKa PORTD.5
#define dirA PORTD.2
#define dirB PORTD.3
#define enKi PORTD.4
#define dirC PORTD.0
#define dirD PORTD.1
unsigned char sensor;
int lpwm, rpwm;
void main(void){
PORTA=0×00;
DDRA=0xFF;
PORTD=0xFF;
DDRD=0×00;
TCCR1A=0xA1;
TCCR1B=0x0C;
while(1){
sensor=PINA;
sensor &= 0b11111111;
switch(sensor){
case 0b00011000:
lpwm=200;
rpwm=200;
dirA=1;
dirB=0;
dirC=1;
dirD=0;
break;
default:
lpwm=175;
rpwm=50;
dirA=1;
dirB=0;
dirC=1;
dirD=0;
break;
}
enKa=lpwm;
enKi=rpwm;
}
}
wah, programnya banyak salahnya. Coba kamu bandingin ama ini:
#include
#include
#define dirA PORTD.2
#define dirB PORTD.3
#define dirC PORTD.0
#define dirD PORTD.1
unsigned char sensor;
int lpwm, rpwm;
void main(void)
{
//–inisialisasi PORTA
PORTA=0xff; //pull up
DDRA=0×00;//sebagai inputan
//–inisialisasi PORTD
PORTD=0×00; //pull down
DDRD=0xff; //sebagai keluaran
//— inisialisasi timer1
TCCR1A=0xA1;
TCCR1B=0x0C;
while(1)
{
sensor = 0b11111111 & PINA;
switch(sensor)
{
case 0b00011000:
lpwm=200;
OCR1A=lpwm;
rpwm=200;
OCR1B=rpwm;
dirA=1;
dirB=0;
dirC=1;
dirD=0;
break;
default:
lpwm=175;
OCR1A=lpwm;
rpwm=50;
OCR1B=rpwm;
dirA=1;
dirB=0;
dirC=1;
dirD=0;
break;
}
}
}
wah iya bang,:D
akhirnya bisa.. hehe…
Hmm, trs untuk buat sistem minimumnya pada aplikasi sebenarnya gmn?? soalnya saya pk proteus buat simulasinya???
untuk sistem minimumnya ya sama saja , seperti kamu pakai proteus. digambar skematik itu udah ada to? rangkaian sistem minimum ya cuman seperti itu. Jangan lupa kamu udah punya downloader belum?
Wahduh bingung master
maksudnya komponen yg harus ada untk membuat sistem minimum tersebut
(
he..he..he…. coba ntar tak upload in gambar yng jelas..!!
makasih banget master
Aku tunggu contohnya gambar
http://www.ziddu.com/download/18470884/lf2.rar.html
Makasih mas koera
semoga bermanfaat ilMunya,,,,,….
ijin download gan buat tutorial
Ok bro, thanks udah mampir di blog ane..!!
ternyata msh bingung saya
nunggu update artikel dr mas koera….