Merhaba
tb6612fg entegresi ile iki motora frenleme yaptırmak istiyorum.Yazılımda switch yapısı içine 231 değeri yazdığım zaman frenleme zaman gecikmesi değerine göre işlem gerçekleştiriyor. ancak input ifadesinden switch yapısına veri geldiği zaman ise motor dur kalk şeklinde çalışıyor. bu konuda bilgisi olan var mı.
yazılım
[/
#include <18f452.h>
#fuses hs,nowdt,noprotect
#use delay(clock=20000000)
#define sol1 pin_d0 //19 nolu pin pin_b0 yeşil led
#define sol2 pin_d1 //20 nolu pin pin_b1 yeşil led
#define sol3 pin_d2 //21 nolu pin pin_b2 yeşil led
#define orts1 pin_d3 //22 nolu pin pin_b3 beyaz led
#define orts2 pin_d4 //27 nolu pin pin_b4 beyaz led
#define sag1 pin_d5 //28 nolu pin pin_b5 kırmızı led
#define sag2 pin_d6 //29 nolu pin pin_b6 kırmızı led
#define sag3 pin_d7 //30 nolu pin pin_b7 kırmızı led
#define sagm_in1 pin_c5 //24 nolu pin sürücü devre ain1 sag motor için
#define sagm_in2 pin_c4 //23 nolu pin sürücü devre ain2 sag motor için
#define solm_in1 pin_c6 //25 nolu pin sürücü devre bin1 sol motor için
#define solm_in2 pin_c7 //26 nolu pin sürücü devre bin2 sol motor için
#define PWM_A pin_c2 //17 nolu pin sag motor pwm girişi
#define PWM_B pin_c1 //16 nolu pin sol motor pwm için
#define stdby pin_c0
// değişken tanımlaması yapılıyor.
int oku_sen; // okunan sensör bilgisi
int Sag_motor,Sol_motor;
void motor_surme(){
Output_high(sagm_in1); // sürücü 1. giriş H
Output_low(sagm_in2); // sürücü 2. giriş L
Output_high(solm_in1); // sürücü 1. giriş H
output_low(solm_in2); // sürücü 2. giriş L
return;}
void motor_ikili_fren(){
Output_high(sagm_in1); // sürücü 1. giriş H
Output_high(sagm_in2); // sürücü 2. giriş L
Output_high(solm_in1); // sürücü 1. giriş H
output_high(solm_in2); // sürücü 2. giriş L
return;}
void sag_fren(){
Output_high(sagm_in1); // sürücü 1. giriş H
Output_high(sagm_in2); // sürücü 2. giriş L
Output_high(solm_in1); // sürücü 1. giriş H
output_low(solm_in2); // sürücü 2. giriş L
return;}
void sol_fren(){
Output_high(sagm_in1); // sürücü 1. giriş H
output_low(sagm_in2); // sürücü 2. giriş L
Output_high(solm_in1); // sürücü 1. giriş H
Output_high(solm_in2); // sürücü 2. giriş L
return;}
void motor_sag_ters(){ //90 derece dönüşte sag motor ters yön
Output_low(sagm_in1); // sürücü 1. giriş H
Output_high(sagm_in2); // sürücü 2. giriş L
Output_high(solm_in1); // sürücü 1. giriş H
output_low(solm_in2); // sürücü 2. giriş L
return;}
void motor_sol_ters(){ //90 derece dönüşte sol motor ters yön
Output_high(sagm_in1); // sürücü 1. giriş H
Output_low(sagm_in2); // sürücü 2. giriş L
Output_low(solm_in1); // sürücü 1. giriş H
output_high(solm_in2); // sürücü 2. giriş L
return;}
void main(){ // Ana fonksiyon.
setup_ccp1(ccp_pwm); //sag motor için kullanılacak
setup_ccp2(ccp_pwm); //sol motor için kullanılacak
setup_timer_2(T2_DIV_BY_4,124,4); //Timer2 ayarları yapılıyor.
//zaman=0.0001 Fr=10 Khz.
output_high(stdby); //motor sürücü entegresi stanby HIGH olmalı.
while(True){
oku_sen=input_d(); // d portundan sensör degerleri okunup oku_sen ata.
switch(231)
{
case 231: //0b10000000 SAG
{
output_b(0b00011000);
motor_surme();
set_pwm1_duty(50);
set_pwm2_duty(50);
delay_ms(5000);
motor_ikili_fren();
set_pwm1_duty(255);
set_pwm2_duty(255);
delay_ms(1000);
sag_fren();
set_pwm1_duty(0);
set_pwm2_duty(100);
delay_ms(5000);
break;}
//motor_surme();}
}}}
code]
frenlemeyi PWM duty oranını sıfır 0 yaparak yapsanız daha İyi olur
teşekkürler. yazılımda mantık hatası var mı.
Programda amacınız nedir tam anlayamadim ama switch case yapısı hatalı
switch (oku_sen)
{
case 231 : // Yapmak istediğiniz
break ;
}
şeklinde olmalı
amacınızı tam anlatırsanız daha çok yardımcı Olabilirim
ben bunu çizgi izleyen robotta yapmak için kullanacağım. normal switch içerisinde input dan gelen bilgiler var. ancak frenleme yaptıracağım zaman bir fren yapıp bırakıyor. ancak switch içerisine direk decimal değeri girdiğimiz zaman frenleme gerçekleşiyor. zaman artııkca frenleme süresi artıyor.
sadece bir fonksiyon icin switch case kulanman cok mantiksiz. 231 muhtemelen sensorden okuyorsun frenleme yaparken 231 degern degisiyor bir daha caseye giremiyorsun. ama sen 231 kendin girersen senin programin surekli case 231 in icide kaliyor ve dogal olarak frenleme yapiyorsun;birde arkadaslarin dedigi gibi programin net okun uyor ne yaptigin anlasilmiyor . program akisini once flow chart olarak ciz kodunu ona gore yaz.
1- fonksiyonların sonundaki "return"lere gerek yok. fonksiyon kendiliğinden sonlanıyorsa "return"e gerek yok.
2- Portlarla ilgili yönlendirme komutları yok. giriş çıkış yönlendirmesi. d portu giriş olarak yönlendirilmeli , c portu çıkış olarak yönlendirilmeli
3- switch(231) switch(oku_sen) ooarak değişmeli
4- 0b10000000 bu 231 değil 128 olmalı
5-
void motor_ikili_fren(){
Output_high(sagm_in1); // sürücü 1. giriş H
Output_high(sagm_in2); // sürücü 2. giriş L
Output_high(solm_in1); // sürücü 1. giriş H
output_high(solm_in2); // sürücü 2. giriş L
return;}
yerine
void motor_ikili_fren(){
set_pwm1_duty(0);
set_pwm2_duty(0);
}
olmalı
6-
void sag_fren(){
Output_high(sagm_in1); // sürücü 1. giriş H
Output_high(sagm_in2); // sürücü 2. giriş L
Output_high(solm_in1); // sürücü 1. giriş H
output_low(solm_in2); // sürücü 2. giriş L
return;}
void sol_fren(){
Output_high(sagm_in1); // sürücü 1. giriş H
output_low(sagm_in2); // sürücü 2. giriş L
Output_high(solm_in1); // sürücü 1. giriş H
Output_high(solm_in2); // sürücü 2. giriş L
return;}
yerine
void sag_fren(){
set_pwm1_duty(0);
}
void sol_fren(){
set_pwm2_duty(0);
}
7-
void main()
{ // Ana fonksiyon.
setup_ccp1(ccp_pwm); //sag motor için kullanılacak
setup_ccp2(ccp_pwm); //sol motor için kullanılacak
setup_timer_2(T2_DIV_BY_4,124,4); //Timer2 ayarları yapılıyor.
//zaman=0.0001 Fr=10 Khz.
output_high(stdby); //motor sürücü entegresi stanby HIGH olmalı.
while(True){
oku_sen=input_d(); // d portundan sensör degerleri okunup oku_sen ata.
switch(231)
{
case 231: //0b10000000 SAG
{
output_b(0b00011000);
motor_surme();
set_pwm1_duty(50);
set_pwm2_duty(50);
delay_ms(5000);
motor_ikili_fren();
set_pwm1_duty(255);
set_pwm2_duty(255);
delay_ms(1000);
sag_fren();
set_pwm1_duty(0);
set_pwm2_duty(100);
delay_ms(5000);
break;}
//motor_surme();}
}}}
yerine de
void main() // Ana fonksiyon.
{
setup_ccp1(ccp_pwm); //sag motor için kullanılacak
setup_ccp2(ccp_pwm); //sol motor için kullanılacak
setup_timer_2(T2_DIV_BY_4,124,4); //Timer2 ayarları yapılıyor.
//zaman=0.0001 Fr=10 Khz.
set_tris_b(0x00) ; // b portu çıış
set_tris_c(0x00); // c portu çıkış
set_tris_d(0xff); // d portu giriş
output_high(stdby); //motor sürücü entegresi stanby HIGH olmalı.
while(1)
{
oku_sen=input_d(); // d portundan sensör degerleri okunup oku_sen ata.
switch( oku_sen)
{
case 128: //0b10000000 SAG
{
output_b(0b00011000);
motor_surme();
set_pwm1_duty(50);
set_pwm2_duty(50);
delay_ms(5000);
motor_ikili_fren();
delay_ms(1000);
sag_fren();
set_pwm2_duty(100);
delay_ms(5000);
set_pwm1_duty(100);
break;}
}
}
}
Merhaba
Benim tüm yazılım kodları aşağıdaki gibidir. Ayrıca giriş çıkış portununu yönlendirmeye gerek yoktur. o kendisi yönlendirme yapmaktadır.
#include <18f452.h>
#fuses hs,nowdt,noprotect
#use delay(clock=20000000)
#define sol1 pin_d0 //19 nolu pin pin_b0 yeşil led
#define sol2 pin_d1 //20 nolu pin pin_b1 yeşil led
#define sol3 pin_d2 //21 nolu pin pin_b2 yeşil led
#define orts1 pin_d3 //22 nolu pin pin_b3 beyaz led
#define orts2 pin_d4 //27 nolu pin pin_b4 beyaz led
#define sag1 pin_d5 //28 nolu pin pin_b5 kırmızı led
#define sag2 pin_d6 //29 nolu pin pin_b6 kırmızı led
#define sag3 pin_d7 //30 nolu pin pin_b7 kırmızı led
#define sagm_in1 pin_c5 //24 nolu pin sürücü devre ain1 sag motor için
#define sagm_in2 pin_c4 //23 nolu pin sürücü devre ain2 sag motor için
#define solm_in1 pin_c6 //25 nolu pin sürücü devre bin1 sol motor için
#define solm_in2 pin_c7 //26 nolu pin sürücü devre bin2 sol motor için
#define PWM_A pin_c2 //17 nolu pin sag motor pwm girişi
#define PWM_B pin_c1 //16 nolu pin sol motor pwm için
#define stdby pin_c0
// değişken tanımlaması yapılıyor.
int oku_sen; // okunan sensör bilgisi
//
int Sag_motor,Sol_motor;
int fren_bekleme=750; //ikili fren sisteminde fren zamanı
void motor_surme(){
Output_high(sagm_in1); // sürücü 1. giriş H
Output_low(sagm_in2); // sürücü 2. giriş L
Output_high(solm_in1); // sürücü 1. giriş H
output_low(solm_in2); // sürücü 2. giriş L
return;}
void motor_ikili_fren(){
Output_high(sagm_in1); // sürücü 1. giriş H
Output_high(sagm_in2); // sürücü 2. giriş L
Output_high(solm_in1); // sürücü 1. giriş H
output_high(solm_in2); // sürücü 2. giriş L
return;}
void sag_fren(){
Output_high(sagm_in1); // sürücü 1. giriş H
Output_high(sagm_in2); // sürücü 2. giriş L
Output_high(solm_in1); // sürücü 1. giriş H
output_low(solm_in2); // sürücü 2. giriş L
return;}
void sol_fren(){
Output_high(sagm_in1); // sürücü 1. giriş H
output_low(sagm_in2); // sürücü 2. giriş L
Output_high(solm_in1); // sürücü 1. giriş H
Output_high(solm_in2); // sürücü 2. giriş L
return;}
void motor_sag_ters(){ //90 derece dönüşte sag motor ters yön
Output_low(sagm_in1); // sürücü 1. giriş H
Output_high(sagm_in2); // sürücü 2. giriş L
Output_high(solm_in1); // sürücü 1. giriş H
output_low(solm_in2); // sürücü 2. giriş L
return;}
void motor_sol_ters(){ //90 derece dönüşte sol motor ters yön
Output_high(sagm_in1); // sürücü 1. giriş H
Output_low(sagm_in2); // sürücü 2. giriş L
Output_low(solm_in1); // sürücü 1. giriş H
output_high(solm_in2); // sürücü 2. giriş L
return;}
void main(){ // Ana fonksiyon.
setup_ccp1(ccp_pwm); //sag motor için kullanılacak
setup_ccp2(ccp_pwm); //sol motor için kullanılacak
setup_timer_2(T2_DIV_BY_4,124,4); //Timer2 ayarları yapılıyor.
//zaman=0.0001 Fr=10 Khz.
output_high(stdby); //motor sürücü entegresi stanby HIGH olmalı.
while(True){
oku_sen=input_d(); // d portundan sensör degerleri okunup oku_sen ata.
switch(oku_sen)
{
case 128: //0b10000000 SAG
{
output_b(0b01111111);
motor_ikili_fren();
set_pwm1_duty(255);
set_pwm2_duty(255);
delay_ms(fren_bekleme);
sag_fren();
set_pwm1_duty(0);
set_pwm2_duty(50);
//motor_surme();
//********************************************************
//*********************************************************
delay_ms(10);
break;}
case 1: //0b00000001
{
output_b(0b11111110);
motor_ikili_fren();
set_pwm1_duty(255);
set_pwm2_duty(255);
delay_ms(fren_bekleme);
sol_fren();
set_pwm1_duty(50);
set_pwm2_duty(0);
//sol_fren();
//motor_surme();
//********************************************************
//*********************************************************
// set_pwm1_duty(65);
// set_pwm2_duty(0);
//**********************************************************
delay_ms(10);
Break;}
case 192: //0b11000000 SAG
{
output_b(0b00111111);
// motor_sag_ters();
motor_ikili_fren();
set_pwm1_duty(255);
set_pwm2_duty(255);
delay_ms(fren_bekleme);
sag_fren();
set_pwm1_duty(0);
set_pwm2_duty(50);
//motor_surme();
//********************************************************
delay_ms(10);
//*********************************************************
break;}
case 3: //0b00000011
{
output_b(0b11111100);
motor_ikili_fren();
set_pwm1_duty(255);
set_pwm2_duty(255);
delay_ms(fren_bekleme);
sol_fren();
// motor_sol_ters();
//sol_fren();
//motor_surme();
//********************************************************
//*********************************************************
set_pwm1_duty(50);
set_pwm2_duty(0);
//**********************************************************
delay_ms(10);
Break;}
case 254: //0b11111110 SAG
{
output_b(0b00000001);
motor_surme();
//********************************************************
//*********************************************************
set_pwm1_duty(15);
set_pwm2_duty(80);
//*********************************************************
break;} //Yol robotun sağında
case 127: //0b01111111
{
output_high(pin_b7);
motor_surme();
//********************************************************
//*********************************************************
set_pwm1_duty(80);
set_pwm2_duty(15);
//*********************************************************
Break;}
case 252: // 0b11111100 SAG
{
output_b(0b00000011);
motor_surme();
//********************************************************
//*********************************************************
set_pwm1_duty(15);
set_pwm2_duty(80);
//*********************************************************
delay_ms(10);
break;}
case 63: //0b00111111
{
output_b(0b11000000);
motor_surme();
//********************************************************
//*********************************************************
set_pwm1_duty(80);
set_pwm2_duty(15);
//*********************************************************
delay_ms(10);
Break;}
case 248: //0b11111000 SAG
{
output_b(0b00000111);
motor_surme();
//********************************************************
//*********************************************************
set_pwm1_duty(20);
set_pwm2_duty(65);
//**********************************************************
Break;}
case 31: //0b00011111
{
output_b(0b11100000);
motor_surme();
//********************************************************
//*********************************************************
set_pwm1_duty(65);
set_pwm2_duty(20);
//**********************************************************
Break;}
case 240: //0b11110000 SAG
{
output_b(0b00001111);
motor_ikili_fren();
set_pwm1_duty(255);
set_pwm2_duty(255);
delay_ms(fren_bekleme);
sag_fren();
set_pwm1_duty(0);
set_pwm2_duty(50);
// motor_sag_ters();
//motor_surme();
//********************************************************
//*********************************************************
//**********************************************************
delay_ms(10);
Break;}
case 15: //0b00001111
{
output_b(0b11110000);
motor_ikili_fren();
set_pwm1_duty(255);
set_pwm2_duty(255);
delay_ms(fren_bekleme);
sol_fren();
set_pwm1_duty(50);
set_pwm2_duty(0);
//sol_fren();
// motor_sol_ters();
// motor_surme();
//********************************************************
//*********************************************************
// set_pwm1_duty(50);
// set_pwm2_duty(0);
//**********************************************************
delay_ms(10);
Break;}
case 224: //0b11100000 SAG
{
output_b(0b00011111);
// motor_sag_ters();
motor_ikili_fren();
set_pwm1_duty(255);
set_pwm2_duty(255);
delay_ms(fren_bekleme);
sag_fren();
set_pwm1_duty(0);
set_pwm2_duty(50);
// motor_surme();
//********************************************************
//*********************************************************
//**********************************************************
delay_ms(10);
Break;}
case 7: //0b00000111
{
output_b(0b11111000);
//motor_sol_ters();
//motor_surme();
// sol_fren();
motor_ikili_fren();
set_pwm1_duty(255);
set_pwm2_duty(255);
delay_ms(fren_bekleme);
sol_fren();
set_pwm1_duty(50);
set_pwm2_duty(0);
//********************************************************
//*********************************************************
//**********************************************************
delay_ms(10);
Break;}
case 249: //0b11111001 SAG
{
output_b(0b00000110);
motor_surme();
//********************************************************
//*********************************************************
set_pwm1_duty(70); //70
set_pwm2_duty(75); //75
//**********************************************************
delay_ms(5);
Break;}
case 159: //0b10011111
{
output_b(0b01100000);
motor_surme();
//********************************************************
//*********************************************************
set_pwm1_duty(75); //75
set_pwm2_duty(70); //70
//*********************************************************
delay_ms(5);
Break;}
case 243: //0b11110011 SAG
{
output_b(0b00001100);
motor_surme();
//********************************************************
//*********************************************************
set_pwm1_duty(65); //65
set_pwm2_duty(70); //70
//*********************************************************
delay_ms(5);
Break;}
case 207: //0b11001111
{
output_b(0b00110000);
motor_surme();
//********************************************************
//*********************************************************
set_pwm1_duty(70); //70
set_pwm2_duty(65); //65
//*********************************************************
delay_ms(5);
Break;
}
case 231: //Yol ortada 0b11100111
{
output_b(0b00011000);
motor_surme();
//********************************************************
//*********************************************************
set_pwm1_duty(70); //eski degeri 70
set_pwm2_duty(70);
//*********************************************************
delay_ms(5);
Break;
}
/*
case 255: //0b11111111
{
output_b(0b00000000);
motor_surme();
set_pwm1_duty(10);
set_pwm2_duty(10);
}*/
default:{}
} }}
programdaki senaryo yu anlayamadim.sensorden bekledigin veri geldiginde durmasi mi gerekiyor? eger dogru tahmin etmisem veriyi esitlige gore degilde buyuk veya kucukture gore karsilastir.
merhaba
ben 90 derecelik dönüşlere geldiği zaman iki motoru 5 veya 10 msn durdurup sonra saga veya sola fren yaptırıp daha düzgün bir dönüş sağlamak için yaptım. motorların ikisinide durdurma işlemini yapmasam dahi dönme işlemi gerçekleşiyor. ben düz yolda yüksek hızda giderken keskin dönüşlerde sıkıntı yaşanmasın diye önce durdurup sonra dönüş yaptırmak istiyorum.
switc degerin tuslardan mi geliyor?
hayır .qtr-8a sensöründen d portuna giriyor. sensör beyaz gördüyse lojik 0 siyah gördüyse lojik 1 üretiyor.
Alıntı yapılan: bbs2006 - 03 Şubat 2016, 22:07:32
hayır .qtr-8a sensöründen d portuna giriyor. sensör beyaz gördüyse lojik 0 siyah gördüyse lojik 1 üretiyor.
bildiğim ve kullandığım kadarıyla qtr8a analog sensordür. dijital okunabiliyor mu? analog okumanız gerekmiyor mu?
evet. zaten qtr-8a analog sensördür. ancak pic 18f4550 entegresinini d portu st özellikli bundan dolayı beyaz çizgiyi lojik 0 siyah girişleri 1 alıyor. benim çizgi izleyen robotta sıkıntı yok. sadece entegre frenleme işleminde sıkıntı oluyor.
Alıntı yapılan: bbs2006 - 04 Şubat 2016, 00:04:59
pic 18f4550 entegresinini d portu st özellikli bundan dolayı beyaz çizgiyi lojik 0 siyah girişleri 1 alıyor.
bu konu ile ilgili biraz bilgi verebilir misiniz?
siz çizgi izleyen robot çalışması yaptınız mı. st(schmitt trigger ) 18f 4550 entegresinin datashettine baktığınız zaman d portunun ğirişlerinin st özellikli olduğu görünür. aynı zamanda 18f452 16f877 portlarında da var. incelemek lazım. önceden cn70 sensörü daha kararlı olması için 7414 entegresi kullanılıyordu(bu st özellikli) portun özelliğinden dolayı bu entegreyi kullanmıyoruz. beyaz çizgide lojik 0 siyah çizgide lojik1 veriyor. siz tb6612fn entegresini kullandınız mı.
çizgi izleyen yapmıştım ama pic'le yapmadım. arduino nano , tb6612fng, ve qtr8a kullandım ve qtr8a 'yı analog okumuştum. çok önceden de bir kere cn70 ve 7414 ikilisini kullanarak yapmıştım.
sizin bahsettiğiniz şekilde hiç yapmadım o yüzden merak ettim .
bende bunu yeni öğrendim. ama çok güzel bir durum. biz entegrelerin özelliklerini tam bilmiyoruz. şuan tb6612 fn entegresinde frenleme yaptırmada sıkıntı var. switch değerine sabit bir deger verdiğim zaman zamana göre frenleme süresi artıyor veya azalıyor. ancak input degerinden switch değer geldiğinde istenilen şekilde çalışmıyor. bu konuda fikriniz var mı
switch case yerine if kullanıp denediniz mi?
Denemedim
Alıntı yapılan: bbs2006 - 04 Şubat 2016, 00:18:27
... st(schmitt trigger ) 18f 4550 entegresinin datashettine baktığınız zaman d portunun ğirişlerinin st özellikli olduğu görünür. aynı zamanda 18f452 16f877 portlarında da var. incelemek lazım. önceden cn70 sensörü daha kararlı olması için 7414 entegresi kullanılıyordu(bu st özellikli) portun özelliğinden dolayı bu entegreyi kullanmıyoruz. beyaz çizgide lojik 0 siyah çizgide lojik1 veriyor. ......
peki burada 1-0 için gerilim eşiği nedir.?
pist üzerinde bu gerilim eşiğini nasıl tutturacaksınız.?
çünkü çevredeki ışıklardan dolayı pistte parlamalar oluyor, portun okuyacağı değerler sizin istediğiniz değerler olcak mı?
dijital okumanın (portun dijital algılaması) bu nedenle sakıncası yok mu ?
devre çalışıyor
hiçibir problem yaok.
benim sadece tb6612fg entegresini switch case yapısında frenleme yaptıramıyorum. switch içerisinde decimal degeri yazdıgım zaman çalışıyor.input dan aldıgı zaman frenleme sıkıntılı. ayrıca pwn ile frenleme yaptırdım. yine aynı sıkıntı.
Alıntı yapılan: bbs2006 - 04 Şubat 2016, 14:33:19
devre çalışıyor
hiçibir problem yaok.
benim sadece tb6612fg entegresini switch case yapısında frenleme yaptıramıyorum. switch içerisinde decimal degeri yazdıgım zaman çalışıyor.input dan aldıgı zaman frenleme sıkıntılı. ayrıca pwn ile frenleme yaptırdım. yine aynı sıkıntı.
ben sizin dediklerinizi anladım sadece kendi merak ettiğim konuları sordum size bilgi edinmek amacıyla .
Alıntı yapılan: bc_esd - 04 Şubat 2016, 14:07:30
peki burada 1-0 için gerilim eşiği nedir.?
pist üzerinde bu gerilim eşiğini nasıl tutturacaksınız.?
çünkü çevredeki ışıklardan dolayı pistte parlamalar oluyor, portun okuyacağı değerler sizin istediğiniz değerler olcak mı?
dijital okumanın (portun dijital algılaması) bu nedenle sakıncası yok mu ?
picin kendi portunun schmitt triger özellidignden dolayı siay ta 1 beyaz da 0 veriyor.
peki bu port kaç volt'tan sonra lojik 1 oluyor?
aynı motor sürücüden bende kullanıyorum. datasheetinde yazdığı gibi in1,in2,in3 ve in4 uçlarını high yaptığım halde frenleme yaptıramadım.
daha önce motoru geri döndürerek durdurabiliyordum ama bu da dişlilere zarar veriyormuş.
yarışma videolarına bakıyorum, köşelerde tak diye duruyor robotlar. bu işin sırrı nedir?
Tak diye durdurmak istiyorsan In1 ve In2 girişlerini 1 yapacaksın.
STBY=1 olacak ve PWM önemli değil.
denedim ama o şekilde çok küçük bir fren etkisi oluyor.
tb6612 nin iki çeşidi var int. de gördüğüm. yeşil ve kırmızı. bizdeki yeşil olan. bunlar arasında fark var mı?
Alıntı yapılan: vatandas30 - 26 Nisan 2017, 15:40:38
denedim ama o şekilde çok küçük bir fren etkisi oluyor.
O zaman ters voltajdan başka seçenek kalmıyor.