can somebody help me to translate this Arduino code to Matlab?
// DECLARACION DE VARIABLES PARA PINES
const int pinecho = 4;
const int pintrigger = 5;
const int pinled = 13;
// Motor A
int IN1 = 8;
int IN2 = 9;
// Motor B
int IN3 = 6;
int IN4 = 7;
int TIempo=0;
// VARIABLES PARA CALCULOS
unsigned int tiempo, distancia;
void setup() {
// PREPARAR LA COMUNICACION SERIAL
Serial.begin(9600);
// CONFIGURAR PINES DE ENTRADA Y SALIDA
pinMode(pinecho, INPUT); % DUDA
pinMode(pintrigger, OUTPUT);
pinMode(13, OUTPUT);
// inicializar la comunicación serial a 9600 bits por segundo:
Serial.begin(9600);
// Declaramos todos los pines como salidas
pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
}
void loop() {
// ENVIAR PULSO DE DISPARO EN EL PIN "TRIGGER"
digitalWrite(pintrigger, LOW);
delayMicroseconds(2);
digitalWrite(pintrigger, HIGH);
// EL PULSO DURA AL MENOS 10 uS EN ESTADO ALTO
delayMicroseconds(2);
digitalWrite(pintrigger, LOW);
// MEDIR EL TIEMPO EN ESTADO ALTO DEL PIN "ECHO" EL PULSO ES PROPORCIONAL A LA DISTANCIA MEDIDA
tiempo = pulseIn(pinecho, HIGH);
// LA VELOCIDAD DEL SONIDO ES DE 340 M/S O 29 MICROSEGUNDOS POR CENTIMETRO
// DIVIDIMOS EL TIEMPO DEL PULSO ENTRE 58, TIEMPO QUE TARDA RECORRER IDA Y VUELTA UN CENTIMETRO LA ONDA SONORA
distancia = tiempo / 58;
// ENVIAR EL RESULTADO AL MONITOR SERIAL
Serial.print(distancia);
Serial.println(" cm");
delay(150);
// ENCENDER EL LED CUANDO SE CUMPLA CON CIERTA DISTANCIA
if (distancia <= 20) {
digitalWrite(13, HIGH);
delay(300);
} else {
digitalWrite(13, LOW);
//apagar el carro
void frenado ();
if (distancia <=20) {
digitalWrite(13, HIGH);
//Direccion motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, LOW);
//Direccion motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, LOW);
}
}
if (Serial.available()) {
char dato= Serial.read();
if(dato==’a’)
{
Adelante();
TIempo=0;
}
else if(dato==’r’)
{
Reversa();
TIempo=0;
}
else if(dato==’d’)
{
Derecha();
TIempo=0;
}
else if(dato==’i’)
{
Izquierda();
TIempo=0;
}
}
if(TIempo<1) // 100 cilcos de 1ms
{
TIempo=TIempo+1;
}
else //ya transcurrió 100ms (100ciclos)
{
Parar();
}
delay(1); //pasusa de 1ms por ciclo
}
void Adelante ()
{
//Direccion motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
//Direccion motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
}
void Parar ()
{
//Direccion motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, LOW);
//Direccion motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, LOW);
}
void Derecha ()
{
//Direccion motor A
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
//Direccion motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
}
void Izquierda ()
{
//Direccion motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
//Direccion motor B
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
}
void Reversa ()
{
//Direccion motor A
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
//Direccion motor B
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
}// DECLARACION DE VARIABLES PARA PINES
const int pinecho = 4;
const int pintrigger = 5;
const int pinled = 13;
// Motor A
int IN1 = 8;
int IN2 = 9;
// Motor B
int IN3 = 6;
int IN4 = 7;
int TIempo=0;
// VARIABLES PARA CALCULOS
unsigned int tiempo, distancia;
void setup() {
// PREPARAR LA COMUNICACION SERIAL
Serial.begin(9600);
// CONFIGURAR PINES DE ENTRADA Y SALIDA
pinMode(pinecho, INPUT); % DUDA
pinMode(pintrigger, OUTPUT);
pinMode(13, OUTPUT);
// inicializar la comunicación serial a 9600 bits por segundo:
Serial.begin(9600);
// Declaramos todos los pines como salidas
pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
}
void loop() {
// ENVIAR PULSO DE DISPARO EN EL PIN "TRIGGER"
digitalWrite(pintrigger, LOW);
delayMicroseconds(2);
digitalWrite(pintrigger, HIGH);
// EL PULSO DURA AL MENOS 10 uS EN ESTADO ALTO
delayMicroseconds(2);
digitalWrite(pintrigger, LOW);
// MEDIR EL TIEMPO EN ESTADO ALTO DEL PIN "ECHO" EL PULSO ES PROPORCIONAL A LA DISTANCIA MEDIDA
tiempo = pulseIn(pinecho, HIGH);
// LA VELOCIDAD DEL SONIDO ES DE 340 M/S O 29 MICROSEGUNDOS POR CENTIMETRO
// DIVIDIMOS EL TIEMPO DEL PULSO ENTRE 58, TIEMPO QUE TARDA RECORRER IDA Y VUELTA UN CENTIMETRO LA ONDA SONORA
distancia = tiempo / 58;
// ENVIAR EL RESULTADO AL MONITOR SERIAL
Serial.print(distancia);
Serial.println(" cm");
delay(150);
// ENCENDER EL LED CUANDO SE CUMPLA CON CIERTA DISTANCIA
if (distancia <= 20) {
digitalWrite(13, HIGH);
delay(300);
} else {
digitalWrite(13, LOW);
//apagar el carro
void frenado ();
if (distancia <=20) {
digitalWrite(13, HIGH);
//Direccion motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, LOW);
//Direccion motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, LOW);
}
}
if (Serial.available()) {
char dato= Serial.read();
if(dato==’a’)
{
Adelante();
TIempo=0;
}
else if(dato==’r’)
{
Reversa();
TIempo=0;
}
else if(dato==’d’)
{
Derecha();
TIempo=0;
}
else if(dato==’i’)
{
Izquierda();
TIempo=0;
}
}
if(TIempo<1) // 100 cilcos de 1ms
{
TIempo=TIempo+1;
}
else //ya transcurrió 100ms (100ciclos)
{
Parar();
}
delay(1); //pasusa de 1ms por ciclo
}
void Adelante ()
{
//Direccion motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
//Direccion motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
}
void Parar ()
{
//Direccion motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, LOW);
//Direccion motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, LOW);
}
void Derecha ()
{
//Direccion motor A
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
//Direccion motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
}
void Izquierda ()
{
//Direccion motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
//Direccion motor B
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
}
void Reversa ()
{
//Direccion motor A
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
//Direccion motor B
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
} // DECLARACION DE VARIABLES PARA PINES
const int pinecho = 4;
const int pintrigger = 5;
const int pinled = 13;
// Motor A
int IN1 = 8;
int IN2 = 9;
// Motor B
int IN3 = 6;
int IN4 = 7;
int TIempo=0;
// VARIABLES PARA CALCULOS
unsigned int tiempo, distancia;
void setup() {
// PREPARAR LA COMUNICACION SERIAL
Serial.begin(9600);
// CONFIGURAR PINES DE ENTRADA Y SALIDA
pinMode(pinecho, INPUT); % DUDA
pinMode(pintrigger, OUTPUT);
pinMode(13, OUTPUT);
// inicializar la comunicación serial a 9600 bits por segundo:
Serial.begin(9600);
// Declaramos todos los pines como salidas
pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
}
void loop() {
// ENVIAR PULSO DE DISPARO EN EL PIN "TRIGGER"
digitalWrite(pintrigger, LOW);
delayMicroseconds(2);
digitalWrite(pintrigger, HIGH);
// EL PULSO DURA AL MENOS 10 uS EN ESTADO ALTO
delayMicroseconds(2);
digitalWrite(pintrigger, LOW);
// MEDIR EL TIEMPO EN ESTADO ALTO DEL PIN "ECHO" EL PULSO ES PROPORCIONAL A LA DISTANCIA MEDIDA
tiempo = pulseIn(pinecho, HIGH);
// LA VELOCIDAD DEL SONIDO ES DE 340 M/S O 29 MICROSEGUNDOS POR CENTIMETRO
// DIVIDIMOS EL TIEMPO DEL PULSO ENTRE 58, TIEMPO QUE TARDA RECORRER IDA Y VUELTA UN CENTIMETRO LA ONDA SONORA
distancia = tiempo / 58;
// ENVIAR EL RESULTADO AL MONITOR SERIAL
Serial.print(distancia);
Serial.println(" cm");
delay(150);
// ENCENDER EL LED CUANDO SE CUMPLA CON CIERTA DISTANCIA
if (distancia <= 20) {
digitalWrite(13, HIGH);
delay(300);
} else {
digitalWrite(13, LOW);
//apagar el carro
void frenado ();
if (distancia <=20) {
digitalWrite(13, HIGH);
//Direccion motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, LOW);
//Direccion motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, LOW);
}
}
if (Serial.available()) {
char dato= Serial.read();
if(dato==’a’)
{
Adelante();
TIempo=0;
}
else if(dato==’r’)
{
Reversa();
TIempo=0;
}
else if(dato==’d’)
{
Derecha();
TIempo=0;
}
else if(dato==’i’)
{
Izquierda();
TIempo=0;
}
}
if(TIempo<1) // 100 cilcos de 1ms
{
TIempo=TIempo+1;
}
else //ya transcurrió 100ms (100ciclos)
{
Parar();
}
delay(1); //pasusa de 1ms por ciclo
}
void Adelante ()
{
//Direccion motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
//Direccion motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
}
void Parar ()
{
//Direccion motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, LOW);
//Direccion motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, LOW);
}
void Derecha ()
{
//Direccion motor A
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
//Direccion motor B
digitalWrite (IN3, LOW);
digitalWrite (IN4, HIGH);
}
void Izquierda ()
{
//Direccion motor A
digitalWrite (IN1, LOW);
digitalWrite (IN2, HIGH);
//Direccion motor B
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
}
void Reversa ()
{
//Direccion motor A
digitalWrite (IN1, HIGH);
digitalWrite (IN2, LOW);
//Direccion motor B
digitalWrite (IN3, HIGH);
digitalWrite (IN4, LOW);
} arduino, matlab MATLAB Answers — New Questions