Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
int i,j,k,der,stop_der,izq,stop_izq;
void main() {
TRISD=0; //salida
ADCON1 =0X0B; //
TRISB=1; //salida
TRISC=1; //salida
PORTD=0; //limpia
PORTB=0; //limpia
stop_der=0;der=0;stop_izq=0;izq=0; //limpia
while(1){
i=0;
if(error<=0){pwm=valor+error;} //proporcional
if(error>0){pwm=valor-error;} //proporcional
if(PORTB==4){izq=1;stop_der=0;der=0;stop_izq=0;}//freno
if(der==1){
PORTD.RD1=0;//transistor Q3
PORTD.RD2=1; //transistor Q2
PORTD.RD3=0; //transistor Q4
i=0;
while(i<valor){
DELAY_US(100);
i=i+1;
i=0;
while(i<valor){
DELAY_US(100);
i=i+1;
i=0;
/*PORTD.RD0=0;
DELAY_US(20); */
if(izq==1){
PORTD.RD0=0; //transistor Q1
PORTD.RD2=0; //transistor Q2
PORTD.RD3=1; //transistor Q4
i=0;
while(i<valor){
DELAY_US(100);
i=i+1;
i=0;
while(i<valor){
DELAY_US(100);
i=i+1;
/*PORTD.RD1=0;
DELAY_US(20);*/
if(stop_der==1){
PORTD.RD1=0;
PORTD.RD2=1;
PORTD.RD3=1;
PORTD.RD0=0;
}
if(stop_izq==1){
PORTD.RD1=0;
PORTD.RD2=1;
PORTD.RD3=1;
PORTD.RD0=0;
i=0;
Freno
izquierda
Bb lo del pid no se si colocarlo por que eso no me cuadra bn pero si el nos dice que lo metamos e
hacemos eso mañana
int PotenciometroMos = 0;
int Arranque = 0;
int DerechaPin = A2;
int Derecha = 0;
int Frenado = 0;
int Izquierda = 0;
int S1_4 = 9;
int S3 =11;
int S4 =12;
int i=0;
int FactorDeArranque=1;
void setup() {
Serial.begin(9600);
pinMode(S1_4, OUTPUT);
pinMode(S2_3, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(S4, OUTPUT);
void loop()
{
digitalWrite(S1_4, LOW);
digitalWrite(S2_3, LOW);
Derecha = digitalRead(DerechaPin);
Izquierda=digitalRead(IzquierdaPin);
Frenado = digitalRead(FrenadoPin);
PotenciometroMos = analogRead(PWM_MOSFET);
Arranque = analogRead(ArranquePin);
while (Derecha==1){
Arranque = analogRead(ArranquePin);
i=1;
for (i==1;i<=Arranque;)
digitalWrite(S1_4, HIGH);
delayMicroseconds(i);
digitalWrite(S1_4, LOW);
delayMicroseconds(Arranque - i);
i=i+FactorDeArranque;
Frenado = digitalRead(FrenadoPin);
Derecha=digitalRead(DerechaPin);
while (Frenado == 0) {
PotenciometroMos = analogRead(PWM_MOSFET);
digitalWrite(S1_4, HIGH);
delayMicroseconds(PotenciometroMos);
digitalWrite(S1_4, LOW);
delayMicroseconds(1023 - PotenciometroMos);
Frenado = digitalRead(FrenadoPin);
Derecha = digitalRead(DerechaPin);
if (Frenado == 1 ) {
digitalWrite(S3, HIGH);
delay(102);
digitalWrite(S3, LOW);
delay(100);
Frenado = digitalRead(FrenadoPin);
delayMicroseconds(Retardo);
while (Izquierda==1){
Arranque = analogRead(ArranquePin);
i=1;
for (i==1;i<=Arranque;){
digitalWrite(S2_3, HIGH);
delayMicroseconds(i);
digitalWrite(S2_3, LOW);
delayMicroseconds(Arranque - i);
i=i+FactorDeArranque;
Frenado = digitalRead(FrenadoPin);
Izquierda=digitalRead(IzquierdaPin);
while (Frenado == 0) {
PotenciometroMos = analogRead(PWM_MOSFET);
digitalWrite(S2_3, HIGH);
delayMicroseconds(PotenciometroMos);
digitalWrite(S2_3, LOW);
delayMicroseconds(1023 - PotenciometroMos);
Frenado = digitalRead(FrenadoPin);
Izquierda = digitalRead(IzquierdaPin);
if (Frenado == 1 ) {
digitalWrite(S4, HIGH);
delay(102);
digitalWrite(S4, LOW);
delay(100);
}
Frenado = digitalRead(FrenadoPin);
delayMicroseconds(Retardo);
int ledPin3= 9;
void setup() {
pinMode(inputPin1, INPUT);
pinMode(ledPin1,OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
void loop(){
if (digitalRead(inputPin1) == HIGH) {
while(digitalRead(inputPin1)==HIGH){
analogWrite(ledPin,analogRead(A1)/4);
}
digitalWrite(ledPin, LOW);
if (digitalRead(inputPin3) == HIGH) {
while(digitalRead(inputPin3)==HIGH){
analogWrite(ledPin1,analogRead(A1)/4);
digitalWrite(ledPin1, LOW);