Stap 3: Test de ACS712
Het motor schild dat mij ben using isoleert de macht voor de motor van de Arduino. Het is een goede zaak omdat motoren veel lawaai maken, maar het betekent dat u moet voor het aandrijven van de Arduino afzonderlijk. Optioneel kan u macht van de Arduino off van de dezelfde 12Vin en voeg een diode en condensator. Voor dit voorbeeld, laten we gewoon de macht de Arduino off van de USB.
- 12V voeding moet uitgeschakeld
- Ga je gang en tampon ter uw USB van de Arduino op uw computer
- Uploaden van de code die instructies volgt
- Open een seriële monitor (Tools / Serial Monitor van de Arduino IDE)
Als alles werkt, moet u lezingen tussen 500-520. Dit klopt. Als gevolg van de manier waarop de ACS712 werkt, de spanning uit geproduceerd 1/2 van de VCC is wanneer geen elektromagnetische veld ontbreekt niet, u moet zien 1/2 van 1024 of over 512.
Aangezien deze sensor werkt volgens het hall-effect principe, het kan fluctueren, u moet zien een verandering als u doorgeeft een magneet in de buurt van de sensor. Leuke spullen!
/* analogRead - reads an analog pin N times per second over N period and writes the min and max to the console */ #include #define ANALOG_PIN A5 #define SAMPLE_INTERVAL 10 // every 10ms #define SAMPLE_PERIOD 1000 // 1 sec // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); pinMode(ANALOG_PIN, INPUT); } // the loop routine runs over and over again forever: void loop() { int min = 0xff; int max = 0; for (int i = 0; i < SAMPLE_PERIOD / SAMPLE_INTERVAL; i ++) { int sensorValue = analogRead(ANALOG_PIN); if (min == 0xff || sensorValue < min) min = sensorValue; if (sensorValue > max) max = sensorValue; delay(SAMPLE_INTERVAL); } char out[255]; sprintf(out, "min=%d max=%d", min, max); Serial.println(out); }