Med en ACS712 och Arduino för att upptäcka manöverdonet gränser (5 / 6 steg)

Steg 5: Låt oss kalibrera!

Så nu är allt som återstår att tillämpa det vi lärt oss från föregående steg.

Om du laddar upp den kod som följer, bör du se din ställdon kommer till liv och sträcka det är ben.

Observera att ACTUATOR_SPEED är konstant på 255 (max). Du kan använda den här tekniken och använda den variabel hastighet att PWM tillhandahåller, men du måste ha PWM i full fart innan du provar ACS712. Om du sänker den variabeln säga 200, ser du att du ibland träffar avläsningar nära resten (512). Det beror på att registeransvarige är inte sänka spänningen att sänka hastigheten, men i stället pulserande 12Vin till DC-motor som om någon står på en strömbrytare och vrida den på och av över och över. Om du prova den nuvarande sensorn inte samtidigt full, du sannolikt att prova en ingen aktuell läsning falskt.

/ * < Br > varje några minuter, flytta manöverdonet genom det är full rörelseomfång och rapportera tid,
begränsa upptäckt och andra användbara diagnostiska information

Testad på Arduino Uno Cytron MD10 10A motor sköld driver en Figerelli 30"/ 400£
manöverdon.

Större manöverdonen har byggt i gränser som stoppa motorn, men inget sätt att tala om
den registeransvarige att manöverdonet är vid sin gräns. Med hjälp av en ACS712 hall effekt sensor
modul ansluten till ACTUATOR_AMP_SENSOR_PIN, upptäcka vi när manöverdonet ska vara
flytta men motorn drar inte någon ström.

*/

#define ACTUATOR_AMP_SENSOR_PIN A5
#define ACTUATOR_PWM_PIN 11
#define ACTUATOR_DIR_PIN 12

Maxhastighet är 255 - detta är det värde som skrivs till ACTUATOR_PWM_PIN
#define ACTUATOR_SPEED 255

När amp sensor analoga värde är mellan dessa, är det att vara i vila (nr
aktuella dras.
#define ZEROAMP_RANGE_LOW 505
#define ZEROAMP_RANGE_HIGH 520

begränsade till 255 röding strängar
void serialPrintf (char const * format,...) {
char buffer [255];
VA_LIST args;
va_start (args, format);
vsprintf (buffert, format, args);
va_end(args);
Serial.println(buffer);
}

booleska isActuatorMoving() {
int val = analogRead(ACTUATOR_AMP_SENSOR_PIN);
serialPrintf ("Amp sensor läsa: %d", val);
returnera val < ZEROAMP_RANGE_LOW || Val > ZEROAMP_RANGE_HIGH;
}

void moveActuator (int riktning, int hastighet = ACTUATOR_SPEED) {
serialPrintf ("flytta manöverdonet riktning = %d, hastighet = %d", riktning, hastighet);
analogWrite (ACTUATOR_PWM_PIN, hastighet);
digitalWrite (ACTUATOR_DIR_PIN, riktning);
Delay(200);
}

void stopActuator() {
analogWrite (ACTUATOR_PWM_PIN, 0);
}

Returnerar antalet milleseconds tas
osignerade långa moveActuatorToEnd(int direction) {
lång startMs = millis();
moveActuator(direction);
Delay(100);
samtidigt (millis() - startMs < 2000) {
Delay(1);
//}
samtidigt (isActuatorMoving()) {
Delay(300); viss fördröjning mellan provtagning modulen ACS712 rekommenderas
}
stopActuator();
lång endMs = millis();
återgå endMs - startMs;
}

Rutinen installationsprogrammet körs en gång när du trycker på reset:
void setup() {
initiera seriell kommunikation på 9600 bitar per sekund:
Serial.BEGIN(9600);

pinMode (ACTUATOR_PWM_PIN, OUTPUT);
pinMode (ACTUATOR_DIR_PIN, OUTPUT);
pinMode (ACTUATOR_AMP_SENSOR_PIN, indata);

serialPrintf ("setup komplett");
}

loop rutinen körs för evigt om och om igen:
void loop() {
int currentDirection = 0;

om (isActuatorMoving()) {
serialPrintf ("fel: avkänning rörelse på manöverdonet när det inte borde vara");
Delay(250);
hemkomst.
}
börja i ena änden det bör redan vara slut om inte manöverdonet startade slingan
i mitten. Vi kunde testa att det tar mindre än n tid till första slutet på
därpå följande iterationer av loop()
moveActuatorToEnd(currentDirection);
Delay(2000);

för (int jag = 0; jag < 2; i ++) {
currentDirection = (currentDirection + 1) % 2. 0 -> 1, 1 -> 0
långa ttm = moveActuatorToEnd(currentDirection);
serialPrintf ("flyttade slutpunkt till slutpunkt (%d) i % ldms", currentDirection, ttm);
Delay(1000);
}
Delay(10000);
}

Se Steg
Relaterade Ämnen

Att skapa Bookhuddle.com, en webbplats för att upptäcka, organisera och dela bokinformation

detta inlägg beskriver de olika stegen i att skapa och lanserar Bookhuddle.com, en webbplats syftar till att hjälpa läsarna att upptäcka, organisera och dela informationen.Steg som beskrivs här gäller utvecklingen av andra webbplatser.Steg 1: Komma m...

Intellekten Edison Gas sensorsystem att upptäcka Biogas / gasol läckage

Jag är en av de 300 + som fått Intel Edison styrelsen och specialitet Intel sakernas Utvecklingskit som erbjuds av instructables under temat miljö & jordbruk. En av de förslag som lagts fram av mig var ett Biogas läckage upptäckt system med Intel Edi...

CD-RW-skivor att upptäcka nya saker!

Detta instructable kommer som en lösning och något medelväg mellan massor av variabler.-Jag kör runt för arbete, och jag är trött på att lyssna på samma låtar och tråkig godartad prat av vissa pratshower.-Jag vill verkligen bygga en i bil dator som d...

Kontrollera lamporna med Pebble smartwatch och Arduino

The Pebble smartwatch är... Tja, smart! De senaste uppdateringarna på en tredje part iOS app har gjort för att skicka HTTP-begäran, vilket är bra för att kontrollera många hemautomation system.I denna tutorial jag visar hur du ställer in en webbserve...

Automatiska bevattningssystem med kapacitiv sond och Arduino på billiga (och jag menar det)

Varning: Jag är inte en elektronikingenjör, så jag inte kan ge någon garanti för design (mycket mindre en implementering). Jag vet bara presenteras lösningen fungerade för mig minst 5-6 månader (så jag inte kan ens garantera dess tillförlitlighet öve...

Färgskiftande box hyllor med LED-strips och Arduino

Obs: detta instructable är en del av en tävling fram till 7 juli. Om du gillar det verkligen, kan du rösta på det övre högra hörnet.Detta började som jag behövde en extra lagringsutrymme nästa och över ett skrivbord, men jag ville ge det några specie...

Visualisering av verkliga och virtuella prototyp med Solidworks, Labview och Arduino

Om du inte vet hur din CAD-modell fungerar innan du går till en 3D utskrift, kan detta vara en lösning på några av de användare som vill visualisera resultatet för deras CAD församlingen modell. Du kanske tror visualisering kan göras med någon progra...

DIY: Dörr larm med Hall enheten och Arduino Uno

detta är en dörr larmsystem som enkelt kan byggas och installerat. Den använder den grundläggande principen som skisserats av Arduino Uno Designers som är att använda sensorn, mikro-controller och manöverdonet. I denna design sensorn är Hall-effekt e...

Små LED Strip Controller med LED Amp och Arduino Nano

En liten LED strip styrenhet med en LED-indikator förstärkare och en Arduino Nano. Perfekt för att göra anpassad belysning mönster och/eller kontrollera lysdiodsrand från datorn. Utfärda utegångsförbud för Mosfet från förstärkaren används för att sty...

Kontroll DC och stepper motors med L298N Controller moduler med dubbla motorer och Arduino

Du behöver inte spendera en massa pengar att styra motorer med en Arduino eller kompatibel styrelsen. Efter lite jakt runt vi kan hittade en snygg motorisk kontrollmodul baserad på L298N H-bridge IC som kan du styra hastighet och riktning av två liks...

Hur man gör en GSM läge Tracker med AdaFruit FONA och Arduino

IntroduktionI denna handledning som vi kommer att göra en webb ansluten plats logger med Adafruit FONA styrelsen, en Arduino och Sparkfun datatjänst. Det kommer att få sin position med hjälp av triangulering och skicka den till en online-databas med...

Spela ljud med Intel Edison och Arduino använder en Bluetooth-högtalare

Detta är en kort introduktion om hur man spelar ljud genom Intel Edison styrelsen när du använder Arduino som en programmeringsmiljö.Sedan Arduino styrelsen för Intel Edison inte har någon ljud capbabilities, vi använder en billigt Bluetooth-högtalar...

Ännu en annan Exploration Rover web-kontrollerade (med Raspberry Pi och Arduino. Android, Iphone, PC, MAC compatible)

Här är en annan exploration rover, byggt i 1 timme eller mindre, utan det krävs. Everthing du behöver finns i förpackningen! Det ger dig grund att bygga och förbättra din egen rover.RaspberryPi med wifi USB-adapter, USB-webbkamera, web-server (apache...

Avståndsmätning med Ultrasonic sensor och Arduino

Hej varje enJag fick min första Aduino nyligen, här är jag gonne Visa du min första projektet som avståndsmätning använder Ultrasonic sensor och Arduino, kan du använda detta projekt många applicering vilja1-flytande nivå2-objekt upptäckt3-avståndsmä...

Camping/utanför larmsystem för att upptäcka odjuret och människor

Nu är sommar, många människor kommer njuta av djurliv medan camping i naturen. Om du någonsin sovit i naturen i ett tält som du vet hur formidabla är att höra ljudet av alla djur i mörkret, (exempel en Björn). Det finns några metoder att fly från en...

Använder en RGB LED att upptäcka färger

jag kommer att visa dig hur du använder en RGB LED och CD-skivor fotocell som en färg sensor för en mikro-controller. Jag kommer att illustrera metoden för att hämta en färg genom att använda Arduino, och jag kommer att visa dig en hur du kan kontrol...

Göra Linux-System att upptäcka av fjärranslutna Bluetooth-enheter

IntroduktionDetta instructable är baserat på min erfarenhet lärande Bluetooth och Linux. Avslutning av denna uppgift krävs en Bluetooth ansökan att överföra foto från Android-enhet till Raspberry Pi med OBEX Push protokollet.Target läsareDetta instru...

Att upptäcka hjälp för felsökning av Yahoo e-frågor.

Platsen för Yahoo har plockat upp fantastiska ubiquity under de senaste åren. Gratis utskick administrationen gav av Yahoo till klienterna, även kallad Yahoo Mail har dessutom plockade upp samma sak med utvecklingen av tid. Heja håller sina kunder no...

Vinkel mätning med gyro, accelerometer och Arduino

enheten är en grov prototyp av vad kommer så småningom bli en egen balans robot, detta är den andra delen av det hål som (Läs accelerometer och styra en motor själv balans). Den första delen med bara gyro kan hittas här.Detta instructable vi mäter vi...