Met behulp van een ACS712 en Arduino actuator grenzen (5 / 6 stap)

Stap 5: Laten we kalibreren!

Dus, nu all that's left is om toe te passen wat we geleerd van de vorige stap.

Als u de code die volgt uploaden, moet u uw actuator komen tot leven en zijn benen strekken.

Merk op dat de ACTUATOR_SPEED constante 255 (max). U kunt deze techniek en gebruikt de variabele snelheid dat PWM beschikt, maar u de PWM op volle snelheid moet vóór de bemonstering van de ACS712. Als u die variabele wil 200 verlaagt, ziet u dat af en toe je lezingen in de buurt van rest (512). Dat komt omdat de controller is niet verlagen de spanning te verlagen van de snelheid, maar in plaats daarvan de 12Vin aan de DC-motor als iemand staande op een lichtschakelaar en draaien het aan en uit over en pulserende. Als u genieten van de huidige sensor terwijl niet op volle, bent u waarschijnlijk om een monster van een geen stroom te lezen ten onrechte.

 /*<br> Every few minutes, move the actuator through it's full range of motion and report time, limit detection and other useful diagnostic info Tested on Arduino Uno with Cytron MD10 10A motor shield driving a Figerelli 30"/400lb actuator. The larger actuators have built in limits that stop the motor, but no way of telling the controller that the actuator is at it's limit. Using an ACS712 hall effect sensor module connected to the ACTUATOR_AMP_SENSOR_PIN, we detect when the actuator should be moving but the motor is not drawing any power. */ #define ACTUATOR_AMP_SENSOR_PIN A5 #define ACTUATOR_PWM_PIN 11 #define ACTUATOR_DIR_PIN 12 // MAX speed is 255 - this is the value that gets written to the ACTUATOR_PWM_PIN #define ACTUATOR_SPEED 255 // when the amp sensor analog value is between these, it is considered to be at rest (no // current being drawn. #define ZEROAMP_RANGE_LOW 505 #define ZEROAMP_RANGE_HIGH 520 // limited to 255 char strings void serialPrintf(char const *format, ...) { char buffer[255]; va_list args; va_start(args, format); vsprintf(buffer, format, args); va_end(args); Serial.println(buffer); } boolean isActuatorMoving() { int val = analogRead(ACTUATOR_AMP_SENSOR_PIN); serialPrintf("Amp sensor reading: %d", val); return val < ZEROAMP_RANGE_LOW || val > ZEROAMP_RANGE_HIGH; } void moveActuator(int direction, int speed=ACTUATOR_SPEED) { serialPrintf("moving actuator direction=%d, speed=%d", direction, speed); analogWrite(ACTUATOR_PWM_PIN, speed); digitalWrite(ACTUATOR_DIR_PIN, direction); delay(200); } void stopActuator() { analogWrite(ACTUATOR_PWM_PIN, 0); } // returns the number of milleseconds taken unsigned long moveActuatorToEnd(int direction) { long startMs = millis(); moveActuator(direction); delay(100); //while (millis() - startMs < 2000) { // delay(1); //} while (isActuatorMoving()){ delay(300); // slight delay between sampling the ACS712 module is recommended } stopActuator(); long endMs = millis(); return endMs - startMs; } // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); pinMode(ACTUATOR_PWM_PIN, OUTPUT); pinMode(ACTUATOR_DIR_PIN, OUTPUT); pinMode(ACTUATOR_AMP_SENSOR_PIN, INPUT); serialPrintf("setup complete"); } // the loop routine runs over and over again forever: void loop() { int currentDirection = 0; if (isActuatorMoving()) { serialPrintf("FAILURE: sensing movement on actuator when it should not be"); delay(250); return; } // start at one end it should already be at an end unless the actuator started the loop // in the middle. We could test that it takes less than n time to the first end on // second and subsequent iterations of loop() moveActuatorToEnd(currentDirection); delay(2000); for( int i = 0; i < 2; i++ ){ currentDirection = (currentDirection + 1) % 2; // 0 -> 1, 1 -> 0 long ttm = moveActuatorToEnd(currentDirection); serialPrintf("moved end to end (%d) in %ldms", currentDirection, ttm); delay(1000); } delay(10000); } 

Gerelateerde Artikelen

Tik omlaag TV mechanismen van uw plafond met behulp van een Firgelli Auto Lineaire Actuator

Tik omlaag TV mechanismen van uw plafond met behulp van een Firgelli Auto Lineaire Actuator

Lineaire aandrijvingen voor Flip down TV mechanismen van uw plafonddoor Firgelli Automations IncLineaire aandrijvingen voor zo veel verschillende toepassingen kan worden gebruikt, een zeer populaire gebruik voor hen is het creëren van een verborgen T
Het weergeven van temperatuur met behulp van een LM35 en Arduino UNO

Het weergeven van temperatuur met behulp van een LM35 en Arduino UNO

In dit instructable, ik zal tonen u hoe een LM35 temperatuursensor verbinden met een Arduino UNO en leest de temperatuur in graden Celsius op de seriële monitor.Stap 1: Hier is wat u nodig hebt Voor dit project moet je:1 Arduino UNO1 LM35 temperatuur
Met behulp van een temperatuursensor de snelheid van een motor met behulp van arduino

Met behulp van een temperatuursensor de snelheid van een motor met behulp van arduino

Deze toepassing is eenvoudig slechts met behulp van de temperatuursensor LM35 met een arduino-kit om te controleren van een fan en wijzigen van de snelheid met betrekking tot de temperatuur gelezen door de micro-controller die in dit geval de arduino
Met behulp van een Dot Matrix LED met een Arduino en Shift Register

Met behulp van een Dot Matrix LED met een Arduino en Shift Register

de Siemens DLO7135 Dot matrix LED is een verbazingwekkend stukje opto-elektronica. Het is gefactureerd als een 5 x 7 Dot Matrix intelligente Display (r) met geheugen/Decoder/Driver. Samen met dat het geheugen, het heeft een 96-ASCII karakterdisplay s
Androino! Controle van een Arduino vanaf uw Android-apparaat met behulp van een goedkope bluetooth-module.

Androino! Controle van een Arduino vanaf uw Android-apparaat met behulp van een goedkope bluetooth-module.

Dit instructable toont je hoe om te lezen van sensor-waardes van een Arduino met uw Androïde apparaat met behulp van een seriële goedkoop bluetooth-apparaat dat u voor onder $10 op dealextreme of ebay bestellen kunt.In het volgende voorbeeld gebruikt
RFIDuino - met behulp van een Arduino & RFID-lezer te maken van een puzzel GeoCache

RFIDuino - met behulp van een Arduino & RFID-lezer te maken van een puzzel GeoCache

ik geniet van zowel Geocaching en elektronica en heb een paar van elektronische puzzel caches met behulp van een Arduino.Mijn nieuwste creatie (met de hulp van een collega cacher voor de code) is met behulp van een Arduino en RFID lezer te maken van
Hoe maak je een enkele LED knipperen met behulp van een Arduino Uno Board

Hoe maak je een enkele LED knipperen met behulp van een Arduino Uno Board

Vandaag, we zullen worden ter illustratie van hoe maak je een enkele LED knipperen met behulp van een Arduino Uno-board. Door elke stap te volgen, zal je dit doel bereiken.U zal het volgende nodig:Een Arduino BoardBrood bordUSB-connectorkabelEEN LED3
Puzzlebox baan: Een infrarood helikopter besturen met behulp van een Arduino

Puzzlebox baan: Een infrarood helikopter besturen met behulp van een Arduino

In dit Instructable zullen we uitleggen hoe de infrarood signalen worden gebruikt door een afstandsbediening om een speeltje of apparaat, dan laten zien hoe een eenvoudige schakeling kan worden toegevoegd aan een Arduino aan dezelfde bedienen via gra
Met behulp van een Arduino te beheersen of te testen een SPI elektronisch apparaat

Met behulp van een Arduino te beheersen of te testen een SPI elektronisch apparaat

er zijn veel elektronische apparaten die gebruikmaken van de SPI bus, of Serial Peripheral Interface bus, voor communicatie (bijvoorbeeld verschillende sensoren, LCD displays, digitale potentiometers, D/A en A/D converters, draadloze zenders en ontva
Maak een Web aangesloten Robot (voor ongeveer $500) (met behulp van een Arduino en Netbook)

Maak een Web aangesloten Robot (voor ongeveer $500) (met behulp van een Arduino en Netbook)

dit Instructable zal u tonen hoe te bouwen van uw eigen Web aangesloten Robot (met behulp van een Arduino micro-controller en de Asus eee pc).Waarom zou u een Web aangesloten Robot willen? Om mee te spelen natuurlijk. Rijd uw robot van hele kamer of
Ik hou van u teken met behulp van een Arduino

Ik hou van u teken met behulp van een Arduino

dit is een leuke project dat een decoratief doel fungeert. Mijn vrouw vond het geweldig toen ik gaf het aan haar voor Valentijnsdag. Haar woorden waren, "Als u niet had vertelde me dat je dit hebt gemaakt, ik zou hebben gedacht was uit de winkel!&quo
Gitaar Tuner voor blinden (met behulp van een Arduino)

Gitaar Tuner voor blinden (met behulp van een Arduino)

het wijzigen van een gitaar tuner zodat het kan worden gebruikt door een blinde persoonDeze build maakt gebruik van een Arduino Pro mini microcontroller, (alle code wordt verstrekt).Dit project werd uitgevoerd voor het goede doel Remap, waarmee op ma
Beheersing van een Arduino Board met behulp van een infrarood afstandsbediening

Beheersing van een Arduino Board met behulp van een infrarood afstandsbediening

I-IntroductionHallo iedereen, mijn naam is Noreddine Kessa, ik ben een liefhebber van de elektronica.  Ik had plezier dit weekend spelen met mijn nieuwe speeltje, Arduino ATmega328 DIY Kit die ik kreeg op eBay, en ik zou graag de vreugde delen met ie
Met behulp van een Arduino Uno R3 als een spelbesturing

Met behulp van een Arduino Uno R3 als een spelbesturing

2016 UPDATE: Ik zal niet langer ondersteuning zorgen in het commentarensectie. Dit is een verouderde en achterhaalde methode, die heeft weinig reden om te worden weggezogen. Houden het alleen voor informatiedoeleinden.Natuurlijk, de Uno doet niet vad