Omet navegació

6 bis 1. Motor B

Recorda que el Motor B l'habilitem amb el pin 3 que li dona alimentació elèctrica al costat esquerre del L293D, el fem girar horariament si activem el pin 7, i el fem girar anti horariament si si activem el pin 4.

Aquest és el programa per fer anar el motor B de forma horaria.

Shield + Motor B (H)

// Copyleft (C) 2015 Carles Ferrando Garcia
// License: GNU GPL v3 http://www.gnu.org/copyleft/gpl.html 
// funcions motorA i motorB
// En aquest programa utilitzem les funcions motorAonH() , motorAoff() , motorAonA() , motorAonHpols(x) , motorAonApols(x)  [on x varia de 0 a 100]
// En aquest programa utilitzem les funcions motorBonH() , motorBoff() , motorBonA() , motorBonHpols(x) , motorBonApols(x)  [on x varia de 0 a 100]

//definim ports motor A o motor 1
//Recorda que el Motor 1 l'habilitem amb el pin 10 , el fem girar horariament si activem el pin 8, i el fem girar anti horariament  si activem el pin 9.
int contacte1motorA = 8;    
int contacte2motorA = 9;    
int activamotorA = 10;

//definim ports motor B o motor 2
// Recorda que el Motor 2 l'habilitem amb el pin 11 , el fem girar horariament si activem el pin 12, i el fem girar anti horariament si si activem el pin 13.
int contacte1motorB = 12;    
int contacte2motorB = 13;    
int activamotorB = 11;

  


void setup() {
 
// Configura els ports motor A con eixides
pinMode(contacte1motorA, OUTPUT);
pinMode(contacte2motorA, OUTPUT);
pinMode(activamotorA, OUTPUT);

// Configura els ports motor B con eixides
pinMode(contacte1motorB, OUTPUT);
pinMode(contacte2motorB, OUTPUT);
pinMode(activamotorB, OUTPUT);


		}
			
void loop() 
{
//motorAonH(); 
//delay(2000); 
//motorAoff(); 
//delay(2000); 

//motorAonA();
//delay(2000);  
//motorAoff(); 
//delay(2000); 

//motorAonHpols(56);
//delay(1000);
//motorAoff();
//delay(1000);

//motorAonApols(56);
//delay (1000);
//motorAoff();
//delay(1500);

motorBonH(); 
delay(100); 
motorBoff(); 
delay(3000);

//motorBonA();
//delay(200);  
//motorBoff(); 
//delay(3000);

//motorBonHpols(56);
//delay(1000);
//motorBoff();
//delay(1000);

//motorBonApols(56);
//delay (1000);
//motorBoff();
//delay(1500);



}

//___________ FUNCIONS MOTOR A
			
//
//anem a crear la funció activar el motor A en sentit Horari 	
void motorAonH()
    {
// activa el motorA per poder engegar-lo
digitalWrite(activamotorA, HIGH);
// engeguem  el motorA en sentit Horari
digitalWrite(contacte1motorA, LOW);   
digitalWrite(contacte2motorA, HIGH);  
    }
			
//
//anem a crear la funció per aturar el motor A
void motorAoff()
	{
// desactivem el motorA per poder parar-lo
digitalWrite(activamotorA, LOW); 
	}

//
//anem a crear la funció engega motor A en sentit Antihorari
void motorAonA()
  {
// activa el motorA per poder engegar-lo
digitalWrite(activamotorA, HIGH);
// engeguem el motorA en sentit Antihorari
digitalWrite(contacte1motorA, HIGH);  
digitalWrite(contacte2motorA, LOW);     
   }


//Anem a crear la funcio engega el motor A en sentit Horari polsat al «pols %» polsat
void motorAonHpols (int pols)
	{
 float escriuD= pols/100.0*255.0;
 int escriuE=int(escriuD);  
// activa el motorA per poder engegar-lo
digitalWrite(activamotorA, HIGH);
// engeguem  el motorA en sentit enrere al pols% del puls possible
analogWrite(contacte1motorA,0);   
analogWrite(contacte2motorA,escriuE);  
	}


//Anem a crear la funcio engega el motor A en sentit Antihorari polsat al «pols %» polsat
void motorAonApols (int pols)
	{
 float escriuD= pols/100.0*255.0;
 int escriuE=int(escriuD);  
// activa el motorA per poder engegar-lo
digitalWrite(activamotorA, HIGH);
// engeguem  el motorA en sentit enrere al pols% del puls possible
analogWrite(contacte1motorA,escriuE);   
analogWrite(contacte2motorA,0);  
	} 
//_________ FUNCIONS MOTOR B
			
//
//anem a crear la funció activar el motor B en sentit Horari 	
void motorBonH()
    {
// activa el motor B per poder engegar-lo
digitalWrite(activamotorB, HIGH);
// engeguem  el motor B en sentit Horari
digitalWrite(contacte1motorB, LOW);   
digitalWrite(contacte2motorB, HIGH);  
    }
			
//
//anem a crear la funció per aturar el motor A
void motorBoff()
	{
// desactivem el motor B per poder parar-lo
//digitalWrite(activamotorB, LOW); 
digitalWrite(contacte1motorB, LOW);  
digitalWrite(contacte2motorB, LOW); 
	}

//
//anem a crear la funció engega motor B en sentit Antihorari
void motorBonA()
  {
// activa el motorA per poder engegar-lo
digitalWrite(activamotorB, HIGH);
// engeguem el motorA en sentit Antihorari
digitalWrite(contacte1motorB, HIGH);  
digitalWrite(contacte2motorB, LOW);     
   }


//Anem a crear la funcio engega el motor B en sentit Horari polsat al «pols %» polsat
void motorBonHpols (int pols)
	{
 float escriuDB= pols/100.0*255.0;
 int escriuEB=int(escriuDB);  
// activa el motorA per poder engegar-lo
digitalWrite(activamotorB, HIGH);
// engeguem  el motorA en sentit enrere al pols% del puls possible
analogWrite(contacte1motorB,0);   
analogWrite(contacte2motorB,escriuEB);  
	}


//Anem a crear la funcio engega el motor B en sentit Antihorari polsat al «pols %» polsat
void motorBonApols (int pols)
	{
 float escriuDB= pols/100.0*255.0;
 int escriuEB=int(escriuDB);  
// activa el motorA per poder engegar-lo
digitalWrite(activamotorB, HIGH);
// engeguem  el motorA en sentit enrere al pols% del puls possible
analogWrite(contacte1motorB,escriuEB);   
analogWrite(contacte2motorB,0);  
	} 

i aquest altre és el programa per anar el motor B de forma anti horaria.

Shield + Motor B (aH)

// Copyleft (C) 2015 Carles Ferrando Garcia
// License: GNU GPL v3 http://www.gnu.org/copyleft/gpl.html 
// funcions motorA i motorB
// En aquest programa utilitzem les funcions motorAonH() , motorAoff() , motorAonA() , motorAonHpols(x) , motorAonApols(x)  [on x varia de 0 a 100]
// En aquest programa utilitzem les funcions motorBonH() , motorBoff() , motorBonA() , motorBonHpols(x) , motorBonApols(x)  [on x varia de 0 a 100]

//definim ports motor A o motor 1
//Recorda que el Motor 1 l'habilitem amb el pin 10 , el fem girar horariament si activem el pin 8, i el fem girar anti horariament  si activem el pin 9.
int contacte1motorA = 8;    
int contacte2motorA = 9;    
int activamotorA = 10;

//definim ports motor B o motor 2
// Recorda que el Motor 2 l'habilitem amb el pin 11 , el fem girar horariament si activem el pin 12, i el fem girar anti horariament si si activem el pin 13.
int contacte1motorB = 12;    
int contacte2motorB = 13;    
int activamotorB = 11;

  


void setup() {
 
// Configura els ports motor A con eixides
pinMode(contacte1motorA, OUTPUT);
pinMode(contacte2motorA, OUTPUT);
pinMode(activamotorA, OUTPUT);

// Configura els ports motor B con eixides
pinMode(contacte1motorB, OUTPUT);
pinMode(contacte2motorB, OUTPUT);
pinMode(activamotorB, OUTPUT);


		}
			
void loop() 
{
//motorAonH(); 
//delay(2000); 
//motorAoff(); 
//delay(2000); 

//motorAonA();
//delay(2000);  
//motorAoff(); 
//delay(2000); 

//motorAonHpols(56);
//delay(1000);
//motorAoff();
//delay(1000);

//motorAonApols(56);
//delay (1000);
//motorAoff();
//delay(1500);

//motorBonH(); 
//delay(100); 
//motorBoff(); 
//delay(3000);

motorBonA();
delay(200);  
motorBoff(); 
delay(3000);

//motorBonHpols(56);
//delay(1000);
//motorBoff();
//delay(1000);

//motorBonApols(56);
//delay (1000);
//motorBoff();
//delay(1500);



}

//___________ FUNCIONS MOTOR A
			
//
//anem a crear la funció activar el motor A en sentit Horari 	
void motorAonH()
    {
// activa el motorA per poder engegar-lo
digitalWrite(activamotorA, HIGH);
// engeguem  el motorA en sentit Horari
digitalWrite(contacte1motorA, LOW);   
digitalWrite(contacte2motorA, HIGH);  
    }
			
//
//anem a crear la funció per aturar el motor A
void motorAoff()
	{
// desactivem el motorA per poder parar-lo
digitalWrite(activamotorA, LOW); 
	}

//
//anem a crear la funció engega motor A en sentit Antihorari
void motorAonA()
  {
// activa el motorA per poder engegar-lo
digitalWrite(activamotorA, HIGH);
// engeguem el motorA en sentit Antihorari
digitalWrite(contacte1motorA, HIGH);  
digitalWrite(contacte2motorA, LOW);     
   }


//Anem a crear la funcio engega el motor A en sentit Horari polsat al «pols %» polsat
void motorAonHpols (int pols)
	{
 float escriuD= pols/100.0*255.0;
 int escriuE=int(escriuD);  
// activa el motorA per poder engegar-lo
digitalWrite(activamotorA, HIGH);
// engeguem  el motorA en sentit enrere al pols% del puls possible
analogWrite(contacte1motorA,0);   
analogWrite(contacte2motorA,escriuE);  
	}


//Anem a crear la funcio engega el motor A en sentit Antihorari polsat al «pols %» polsat
void motorAonApols (int pols)
	{
 float escriuD= pols/100.0*255.0;
 int escriuE=int(escriuD);  
// activa el motorA per poder engegar-lo
digitalWrite(activamotorA, HIGH);
// engeguem  el motorA en sentit enrere al pols% del puls possible
analogWrite(contacte1motorA,escriuE);   
analogWrite(contacte2motorA,0);  
	} 
//_________ FUNCIONS MOTOR B
			
//
//anem a crear la funció activar el motor B en sentit Horari 	
void motorBonH()
    {
// activa el motor B per poder engegar-lo
digitalWrite(activamotorB, HIGH);
// engeguem  el motor B en sentit Horari
digitalWrite(contacte1motorB, LOW);   
digitalWrite(contacte2motorB, HIGH);  
    }
			
//
//anem a crear la funció per aturar el motor A
void motorBoff()
	{
// desactivem el motor B per poder parar-lo
//digitalWrite(activamotorB, LOW); 
digitalWrite(contacte1motorB, LOW);  
digitalWrite(contacte2motorB, LOW); 
	}

//
//anem a crear la funció engega motor B en sentit Antihorari
void motorBonA()
  {
// activa el motorA per poder engegar-lo
digitalWrite(activamotorB, HIGH);
// engeguem el motorA en sentit Antihorari
digitalWrite(contacte1motorB, HIGH);  
digitalWrite(contacte2motorB, LOW);     
   }


//Anem a crear la funcio engega el motor B en sentit Horari polsat al «pols %» polsat
void motorBonHpols (int pols)
	{
 float escriuDB= pols/100.0*255.0;
 int escriuEB=int(escriuDB);  
// activa el motorA per poder engegar-lo
digitalWrite(activamotorB, HIGH);
// engeguem  el motorA en sentit enrere al pols% del puls possible
analogWrite(contacte1motorB,0);   
analogWrite(contacte2motorB,escriuEB);  
	}


//Anem a crear la funcio engega el motor B en sentit Antihorari polsat al «pols %» polsat
void motorBonApols (int pols)
	{
 float escriuDB= pols/100.0*255.0;
 int escriuEB=int(escriuDB);  
// activa el motorA per poder engegar-lo
digitalWrite(activamotorB, HIGH);
// engeguem  el motorA en sentit enrere al pols% del puls possible
analogWrite(contacte1motorB,escriuEB);   
analogWrite(contacte2motorB,0);  
	}