Quadern de Pràctiques de Tecnologia
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.
// 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.
// 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);
}
|
Llicenciat sota la Llicència Creative Commons Reconeixement NoComercial CompartirIgual 4.0