Paso 4: Compilar el código y descargar para el MSP430
El código es publicado a continuación. Simplemente compilar el código y programa para el microcontrolador
----------------------------------------------------------------------------------------------------------------.
#define leer 0 x 01
int cuenta = 0;
rval int;
int dval;
int dvaltemp = 1;
ejecuta int = 0;
int dvalcount = 0;
const int pingPin = P2_6;
const int pingReceive = P2_1;
const int m1 = P2_3;
const int m2 = P2_4;
const int sb = P1_5;
const int sr = P1_3;
const int ledpin = P2_5;
int rfidtagclose = 0;
int cerca = 0;
countt largo = 0;
open int = 0;
de larga duración;
pulgadas largo;
cm largo;
int rfidtag = 0;
int temp = 0;
int bowlopencnt = 0;
char btread = 'A';
void setup()
{
Serial.Begin(9600);
pinMode (sb, salida);
pinMode (sr, salida);
digitalWrite (sb, LOW);
digitalWrite (sr, LOW);
pinMode (m1, salida);
pinMode (m2, salida);
pinMode (ledpin, salida);
pinMode (GREEN_LED, salida);
}
void loop()
{
Si (cuenta < 40)
{
digitalWrite (sr, HIGH);
Serial.Print("!RW");
Serial.Write(byte(Read));
Serial.Write(byte(32));
if(serial.Available() > 0)
{
rval = Serial.read();
Si (rval! = 1)
{suppressAll();}
}
if(serial.Available() > 0) {}
rval = Serial.read();
Serial.Print("1st:");
Serial.println(rval);
}
if(serial.Available() > 0) {}
rval = Serial.read();
Serial.Print("2nd:");
Serial.println(rval);
if(rval == 149)
{
rfidtag = 0;
}
}
if(serial.Available() > 0) {}
rval = Serial.read();
Serial.Print("3rd:");
Serial.println (rval, hexagonal);
}
if(serial.Available() > 0) {}
rval = Serial.read();
Serial.Print("4th:");
Serial.println (rval, hexagonal);
Serial.println("---");
}
Delay(3);
retardo (11);
}
otra cosa
{
digitalWrite (sr, LOW);
}
Si (cuenta > 45)
{
digitalWrite (sb, HIGH);
Delay(10);
Temp = Serial.read();
Serial.println(Temp);
Si (temp == 65 || temp == 66 || temp == 67)
{
btread = temp;
Serial.println(btread);
}
pinMode (pingPin, salida);
digitalWrite (pingPin, LOW);
delayMicroseconds(2);
digitalWrite (pingPin, HIGH);
delayMicroseconds(5);
digitalWrite (pingPin, LOW);
pinMode (pingReceive, entrada);
duración = pulseIn (pingReceive, HIGH);
dvaltemp = Inches(duration);
Serial.println(dval);
Delay(10);
Si (dvaltemp < 15 & & dvaltemp > 0)
{
dvalcount = 0;
}
}
otra cosa
{
digitalWrite (sb, LOW);
}
cuenta ++;
Si (cuenta > 55)
{
cuenta = 0;
}
Si ((btread == 'A' & & dval == 1 & & rfidtagclose == 0) || btread == 'C')
{
bowlopencnt = 0;
}
if(bowlopencnt<5)
{
digitalWrite (m2, alto);
digitalWrite (m1, LOW);
digitalWrite (ledpin, HIGH);
}
otra cosa
{
digitalWrite (ledpin, LOW);
digitalWrite (m1, HIGH);
digitalWrite (m2, bajo);
}
dvalcount ++;
if(dvalcount <250)
{
dval = 1;
}
otra cosa
{
dval = 0;
}
Si (dvalcount > 300)
{
dvalcount = 295;
}
bowlopencnt ++;
if(bowlopencnt>30)
{
bowlopencnt = 20;
}
rfidtag ++;
if(rfidtag < 250)
{
rfidtagclose = 1;
dvalcount = 290;
}
otra cosa
{
rfidtagclose = 0;
}
Si (rfidtag > 300)
{
rfidtag = 310;
}
Delay(3);
Serial.println(dvaltemp);
}
Inches(long microseconds) largo
{
cálculo de la velocidad del sonido
volver microsegundos / 74 / 2;
}
void suppressAll()
{
if(serial.Available() > 0)
{Serial.read();
suppressAll();
}
}
------------------------------------------------------------------------------------------------------------
Este código se puede optimizar para la aplicación deseada.