RFABulous hund matskål (4 / 6 steg)
Steg 4: Kompilera koden och ladda ner den till MSP430
Koden är postat nedan. Helt enkelt kompilera koden och programmera den att mikro-controller
----------------------------------------------------------------------------------------------------------------.
#define läsa 0x01
int count = 0;
int rval;
int Mårtens;
int dvaltemp = 1;
int kör = 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 nära = 0;
lång countt = 0;
int öppen = 0;
lång varaktighet;
långa inches;
långa cm;
int rfidtag = 0;
int temp = 0;
int bowlopencnt = 0;
char btread = 'A',
void setup()
{
Serial.BEGIN(9600);
pinMode (sb, produktionen);
pinMode (sr, produktionen);
digitalWrite (sb, låg).
digitalWrite (sr, låg);
pinMode (m1, produktionen);
pinMode (m2, produktionen);
pinMode (ledpin, produktionen);
pinMode (GREEN_LED, OUTPUT);
}
void loop()
{
om (räknas < 40)
{
digitalWrite (sr, hög);
Serial.Print("!RW");
Serial.write(byte(Read));
Serial.write(byte(32));
IF(Serial.available() > 0)
{
rval = Serial.read();
om (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, HEX);
}
IF(Serial.available() > 0) {
rval = Serial.read();
Serial.Print("4th:");
Serial.println (rval, HEX);
Serial.println("---");
}
Delay(3);
fördröjning (11).
}
annat
{
digitalWrite (sr, låg);
}
om (count > 45)
{
digitalWrite (sb, hög).
Delay(10);
Temp = Serial.read();
Serial.println(temp);
om (temp == 65 || temp == 66 || temp == 67)
{
btread = härda;
Serial.println(btread);
}
pinMode (pingPin, produktionen);
digitalWrite (pingPin, låg);
delayMicroseconds(2);
digitalWrite (pingPin, hög);
delayMicroseconds(5);
digitalWrite (pingPin, låg);
pinMode (pingReceive, ingång);
längd = pulseIn (pingReceive, hög);
dvaltemp = Inches(duration);
Serial.println(dval);
Delay(10);
om (dvaltemp < 15 & & dvaltemp > 0)
{
dvalcount = 0;
}
}
annat
{
digitalWrite (sb, låg).
}
greve ++;
om (räkna > 55)
{
Count = 0;
}
om ((btread == "A" & & Mårtens == 1 & & rfidtagclose == 0) || btread == "C")
{
bowlopencnt = 0;
}
IF(bowlopencnt<5)
{
digitalWrite (m2, hög);
digitalWrite (m1, låg).
digitalWrite (ledpin, hög);
}
annat
{
digitalWrite (ledpin, låg);
digitalWrite (m1, hög).
digitalWrite (m2, låg);
}
dvalcount ++;
IF(dvalcount <250)
{
Mårtens = 1;
}
annat
{
Mårtens = 0;
}
om (dvalcount > 300)
{
dvalcount = 295;
}
bowlopencnt ++;
IF(bowlopencnt>30)
{
bowlopencnt = 20;
}
rfidtag ++;
IF(rfidtag < 250)
{
rfidtagclose = 1;
dvalcount = 290;
}
annat
{
rfidtagclose = 0;
}
om (rfidtag > 300)
{
rfidtag = 310;
}
Delay(3);
Serial.println(dvaltemp);
}
lång Inches(long microseconds)
{
beräkning för rusat av solitt
återvända mikrosekunder / 74 / 2;
}
void suppressAll()
{
IF(Serial.available() > 0)
{Serial.read();
suppressAll();
}
}
------------------------------------------------------------------------------------------------------------
Denna kod kan optimeras för önskat program.