Läs objekt (höjder och bitar) (2 / 2 steg)
Steg 2: Kod och montering
Anslut Arduino styrelsen att bas sköld
Anslut givaren till D7
Anslut USB-kabeln till datorn och styrelsen, på och sedan ladda upp din Arduino kod till din Arduino program på datorn.
Där går du, du kan nu se höjderna och hur många bitar av 3 typer av objekt.
Jag har använt är
Objekt 1 = 72 mm
Objekt 2 = 40, 4mm
Objekt 3 = 53, 3mm
Om du wan't, kan du kopiera koderna och ändra intervallet. Sedan kommer det vara möjligt att ha många seder objekt att läsa.
KOD:
Skapad av Mads Nilsson
28/9-15
www.Arduino.com användes till exempel i den här koden
Dessa konstanter ändras inte. De är de / / lägsta och högsta behandlingen du får från din sensor: const int sensorMin = 0; sensor minimum (minsta åtgärd) const int sensorMax = 128; sensor maximal (höjd från sensorn till bandet)
int objectNumber1 = 1; räkna objekt nummer 1 int objectNumber2 = 1; räkna objekt nummer 2 int objectNumber3 = 1; räkna objektnummer 3
PIN-utgång: const int pingPin = 7. Anslut givaren till D7. (Du kan också ta en annan ingång, men än du har till ändra koden) int utbud = 0; Rad
void setup() {/ / lägga installationen koden här, om du vill köra en gång: Serial.begin(9600); //turns på den seriella skrivaren. Alltid använda 9600
}
void loop() //Loop kommer att köras om och om igen {
fastställa variabler för varaktigheten av ping, / / och avstånd resultatet milimeter: {lång varaktighet, mm.}
Ping utlöses av en hög puls av 2 eller fler mikrosekunder. Ge en kort låg puls förhand för att säkerställa en ren hög puls: {pinMode (pingPin, produktionen), digitalWrite (pingPin, låg), delayMicroseconds(2), digitalWrite (pingPin, hög), delayMicroseconds(5), digitalWrite (pingPin, låg);} pinMode (pingPin, ingång); int längd = pulseIn (pingPin, hög);
konvertera tiden till avstånd int mm = microsecondsToMilimeters(duration); långa höjder = 128 - mm; Definierar sensorMax - mm (ger dig de riktiga höjderna av objektet, du är åtgärd)
om (höjder > 30 & & höjder < 45) / / Range av det första objektet) (mellan 30-45 mm) {Serial.println ("objekt 2"); / / namnet på första objektet Serial.print ("höjder:"); Serial.Print (128 - mm). skriver höjderna i mm Serial.print ("mm"); Serial.println(); Serial.Print ("bitar:"); bitar av objekt Serial.println(objectNumber1++); skriver hur många av detta objekt har passerat sensorn Serial.println(); } om (höjder > 45 & & höjder < 60) / / Range av det andra objektet) (mellan 45-60 mm) {Serial.println ("objekt 3"). Serial.Print ("höjder:"); Serial.Print (128 - mm). Serial.Print ("mm"); Serial.println(); Serial.Print ("bitar:"); Serial.println(objectNumber2++); Serial.println(); } om (höjder > 60 & & höjder < 80) / / Range av tredje objektet) (mellan 60-80 mm) {Serial.println ("Obejct 1"); Serial.Print ("höjder:"); Serial.Print (128 - mm). Serial.Print ("mm"); Serial.println(); Serial.Print ("bitar:"); Serial.println(objectNumber3++); Serial.println();
}
}
långa microsecondsToMilimeters (lång mikrosekunder) {återvända mikrosekunder / 2.9 / 2;}