hazır aurdino uyumlu motor kontrol kartı-motor devri hakkında

Başlatan forumsad, 25 Şubat 2015, 17:54:49

forumsad

http://www.vetco.net/catalog/product_info.php?products_id=12794

yukardaki ürünü inceledim
bir örnek üzerinde çalışma yaparak aşagıdaki şekilde 4 motoruda kontrol edebiliyorum.
sorunum şu
başka örneklerde motor devrinide ayarlamışlat pwm kullanmadan normal çıkışlarla motor devrini nasıl ayarlamış olabilirler.
int SER_Pin = 8;   //pin 14 on the 75HC595  // 1 mi 0 mı
int RCLK_Pin = 12;  //pin 12 on the 75HC595  //Göster
int SRCLK_Pin = 4; //pin 11 on the 75HC595  //clock

int say=0;
int dizi[10];
String data;

//int OE_pin = 7  //Output Enable pini ON-OFF pini

//How many of the shift registers - change this
#define number_of_74hc595s 1 

//do not touch
#define numOfRegisterPins number_of_74hc595s * 8

boolean registers[numOfRegisterPins];

void setup(){
  pinMode(SER_Pin, OUTPUT);
  pinMode(RCLK_Pin, OUTPUT);
  pinMode(SRCLK_Pin, OUTPUT);
 // pinMode (OE_pin, OUTPUT);
 
 Serial.begin(9600); // Seri haberleşme başlangıç ayarı-baudrate   


 pinMode(13, OUTPUT); //led
 
 pinMode(7, OUTPUT);    //hc595 enable
 //L293 ENABLE UÇLARI.........................
 pinMode(3, OUTPUT);
 pinMode(5, OUTPUT);
 pinMode(6, OUTPUT);
 pinMode(11, OUTPUT); 


  //reset all register pins
  clearRegisters();
  writeRegisters();
}               


//set all register pins to LOW
void clearRegisters(){
  for(int i = numOfRegisterPins - 1; i >=  0; i--){
     registers[i] = LOW;
  }
} 


//bilgiyi yaz gönder
void writeRegisters(){
  
  digitalWrite(RCLK_Pin, LOW);

  for(int i = numOfRegisterPins - 1; i >=  0; i--){
    digitalWrite(SRCLK_Pin, LOW);

    int val = registers[i];

    digitalWrite(SER_Pin, val);
    digitalWrite(SRCLK_Pin, HIGH);

  }
  digitalWrite(RCLK_Pin, HIGH);

}

//set an individual pin HIGH or LOW
void setRegisterPin(int index, int value){
  registers[index] = value;
}





//
  void MotorKontrol(int HC595On,int Mot11,int Mot12,int Mot21,int Mot22,int Mot31,int Mot32,int Mot41,int Mot42)
  {
  digitalWrite(7, HC595On);  //HC595 ON 
  
  Serial.println(String(HC595On)+String(Mot11) +String(Mot12) +String(Mot21)+String(Mot22)+String(Mot31)+String(Mot32)+String(Mot41)+String(Mot42));
  
  //hangi çıkışlar 1 veya 0 olacak belirle
  setRegisterPin(0, Mot41);    //A   MOT-4
  setRegisterPin(1, Mot21);    //B   MOT-2
  setRegisterPin(2, Mot11);    //C   MOT-1
  setRegisterPin(3, Mot12);    //D   MOT-1
  setRegisterPin(4, Mot22);   //E   MOT-2
  setRegisterPin(5, Mot31);   //F   MOT-3
  setRegisterPin(6, Mot42);    //G   MOT-4
  setRegisterPin(7, Mot32);   //H   MOT-3

  writeRegisters();  //gönder yaz
}




void loop(){
digitalWrite(3, 1); //L293 enable MOT-2
digitalWrite(5, 1); //L293 enable MOT-4
digitalWrite(6, 1); //L293 enable  MOT-3
digitalWrite(11, 0); //L293 enable MOT-1



//------------- 1---2---3---4---
MotorKontrol(0,1,0,1,0,1,0,1,0);


// while(Serial.available()>0) // Seri haberleşme gerçekleşiyor mu?  
//   { 
//     say++;
//     char gelenData = Serial.read();
//     dizi[say]=gelenData;
//    data=data +String( dizi[say]);
//     
//   }
//    Serial.println(data);


}


saygılarımla