Seguid or 00
Seguid or 00
Seguid or 00
#define PINBOTON 2
int base = 0;
float Kprop = 1.2;
float Kderiv = 7.5;
float Kinte = 0.0;
int pos;
int setpoint = 0;
int last_error = 0;
int pot_limite = 250;
int l_pos;
void setup() {
Serial.begin(115200);
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
Serial.println("hola");
Motores(0, 0);
WaitBoton();
digitalWrite(13, HIGH);
Peripherals_init();
beep();
delay(1000);
calibracion();
digitalWrite(13, LOW);
tone(PINBUZZER, 1500, 50);
delay(70);
tone(PINBUZZER, 1500, 50);
delay(70);
WaitBoton();
delay(1000);
digitalWrite(13, HIGH);
void loop() {
void Peripherals_init() {
pinMode(PINBOTON, INPUT);
pinMode(PINBUZZER, OUTPUT);
}
void WaitBoton() { // Entra en un bucle infinito de espera.
while (!digitalRead(PINBOTON)); // Se sale del bucle cuando se aprieta el botón
tone(PINBUZZER, 2000, 100); // Cuando sale del bucle, suena el buzzer
}
void beep() {
tone(PINBUZZER, 2000, 100);
delay(200);
}
void calibracion() {
int v_s[6];
Serial.print(v_s[i]);
Serial.print("\t");
}
Serial.println();
beep();
beep();
Serial.println();
Serial.print("Mínimos ");
Serial.print("\t");
Serial.print(v_s_min[i]);
Serial.print("\t");
}
Serial.println();
Serial.print("Máximos ");
Serial.print("\t");
Serial.print(v_s_max[i]);
Serial.print("\t");
}
Serial.println();
Serial.println();
Serial.println();
void readSensors() {
s[0] = analogRead(A6);
s[1] = analogRead(A5);
s[2] = analogRead(A4);
s[3] = analogRead(A3);
s[4] = analogRead(A2);
s[5] = analogRead(A1);
if (online) {
for (int i = 0; i < 6; i++) {
Serial.print(s_p[i]);
Serial.print("\t");
}
//Serial.println();
}
int GetPos() {
readSensors();
int prom = -2.5 * s_p[0] - 1.5 * s_p[1] - 0.5 * s_p[2] + 0.5 * s_p[3] + 1.5 * s_p[4] + 2.5 * s_p[5];
int sum = s_p[0] + s_p[1] + s_p[2] + s_p[3] + s_p[4] + s_p[5];
if (online) {
pos = int(100.0 * prom / sum);
} else {
if (l_pos < 0) {
pos = -255;
}
if (l_pos >= 0) {
pos = 255;
}
}
l_pos = pos;
return pos;
}
void TB6612FNG_init() {
pinMode(AIN1, OUTPUT);
pinMode(AIN2, OUTPUT);
pinMode(PWMA, OUTPUT);
pinMode(BIN1, OUTPUT);
pinMode(BIN2, OUTPUT);
pinMode(PWMB, OUTPUT);
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
} else {
// si valor negativo vamos hacia atras
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
value *= -1;
}
// Setea Velocidad
analogWrite(PWMA, value);
}
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, LOW);
} else {
// si valor negativo vamos hacia atras
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
value *= -1;
}
// Setea Velocidad
analogWrite(PWMB, value);
}