Aan de slag met de LinkIt One - gelijkstroommotoren (4 / 4 stap)

Stap 4: Code


Nadat u hebt de installatie van de hardware nu is het tijd voor de code, dit een test-code waardoor de motoren draaien in één richting voor 10 seconden en dan keert de richting. In de volgende tutorial zal ik u tonen hoe te ontwerpen een robot met behulp van dezelfde logica.

De code kan worden gevonden hieronder u kunt kopiëren en plak de code in de Arduino IDE en uploaden naar de Raad van bestuur.

 #include #define MotorSpeedSet 0x82 #define PWMFrequenceSet 0x84 #define DirectionSet 0xaa #define MotorSetA 0xa1 #define MotorSetB 0xa5 #define Nothing 0x01 #define EnableStepper 0x1a #define UnenableStepper 0x1b #define Stepernu 0x1c #define I2CMotorDriverAdd 0x0f // Set the address of the I2CMotorDriver // set the steps you want, if 255, the stepper will rotate continuely; void SteperStepset(unsigned char stepnu) { Wire.beginTransmission(I2CMotorDriverAdd); // transmit to device I2CMotorDriverAdd Wire.write(Stepernu); // Send the stepernu command Wire.write(stepnu); // send the steps Wire.write(Nothing); // send nothing Wire.endTransmission(); // stop transmitting } /////////////////////////////////////////////////////////////////////////////// // Enanble the i2c motor driver to drive a 4-wire stepper. the i2c motor driver will //driver a 4-wire with 8 polarity . //Direction: stepper direction ; 1/0 //motor speed: defines the time interval the i2C motor driver change it output to drive the stepper //the actul interval time is : motorspeed * 4ms. that is , when motor speed is 10, the interval time //would be 40 ms ////////////////////////////////////////////////////////////////////////////////// void StepperMotorEnable(unsigned char Direction, unsigned char motorspeed) { Wire.beginTransmission(I2CMotorDriverAdd); // transmit to device I2CMotorDriverAdd Wire.write(EnableStepper); // set pwm header Wire.write(Direction); // send pwma Wire.write(motorspeed); // send pwmb Wire.endTransmission(); // stop transmitting } //function to uneanble i2C motor drive to drive the stepper. void StepperMotorUnenable() { Wire.beginTransmission(I2CMotorDriverAdd); // transmit to device I2CMotorDriverAdd Wire.write(UnenableStepper); // set unenable commmand Wire.write(Nothing); Wire.write(Nothing); Wire.endTransmission(); // stop transmitting } ////////////////////////////////////////////////////////////////////// //Function to set the 2 DC motor speed //motorSpeedA : the DC motor A speed; should be 0~100; //motorSpeedB: the DC motor B speed; should be 0~100; void MotorSpeedSetAB(unsigned char MotorSpeedA , unsigned char MotorSpeedB) { MotorSpeedA=map(MotorSpeedA,0,100,0,255); MotorSpeedB=map(MotorSpeedB,0,100,0,255); Wire.beginTransmission(I2CMotorDriverAdd); // transmit to device I2CMotorDriverAdd Wire.write(MotorSpeedSet); // set pwm header Wire.write(MotorSpeedA); // send pwma Wire.write(MotorSpeedB); // send pwmb Wire.endTransmission(); // stop transmitting } //set the prescale frequency of PWM, 0x03 default; void MotorPWMFrequenceSet(unsigned char Frequence) { Wire.beginTransmission(I2CMotorDriverAdd); // transmit to device I2CMotorDriverAdd Wire.write(PWMFrequenceSet); // set frequence header Wire.write(Frequence); // send frequence Wire.write(Nothing); // need to send this byte as the third byte(no meaning) Wire.endTransmission(); // stop transmitting } //set the direction of DC motor. void MotorDirectionSet(unsigned char Direction) { // Adjust the direction of the motors 0b0000 I4 I3 I2 I1 Wire.beginTransmission(I2CMotorDriverAdd); // transmit to device I2CMotorDriverAdd Wire.write(DirectionSet); // Direction control header Wire.write(Direction); // send direction control information Wire.write(Nothing); // need to send this byte as the third byte(no meaning) Wire.endTransmission(); // stop transmitting } void MotorDriectionAndSpeedSet(unsigned char Direction,unsigned char MotorSpeedA,unsigned char MotorSpeedB) { //you can adjust the driection and speed together MotorDirectionSet(Direction); MotorSpeedSetAB(MotorSpeedA,MotorSpeedB); } void setup() { Wire.begin(); // join i2c bus (address optional for master) delayMicroseconds(10000); Serial.begin(9600); Serial.println("setup begin"); } void loop() { Serial.println("sent DC speed 100"); MotorSpeedSetAB(100,100);//defines the speed of motor 1 and motor 2; delay(10); //this delay needed MotorDirectionSet(0b1010); //"0b1010" defines the output polarity, "10" means the M+ is "positive" while the M- is "negtive" // make sure M+ and M- is different polatity when driving DC motors. delay(10000); MotorDirectionSet(0b0101); //0b0101 Rotating in the opposite direction delay(10000); } 

Gerelateerde Artikelen

Aan de slag met de LinkIt One - WIFI

Aan de slag met de LinkIt One - WIFI

Na een paar projecten met de LinkIt één nu is het tijd om het online en maak IoT projecten gerelateerde. Om te beginnen uit met ik ga u tonen hoe te verbinden de link het een bord met een WiFi-netwerk. Moet u lezen al mijn vorige instructable alvoren
Aan de slag met GPS Linkit ONE

Aan de slag met GPS Linkit ONE

Met behulp van GPS, kunnen een zeer krachtige tool in een project. Het kan worden gebruikt om de snelheid van een bewegend object zoeken, ontdek de tijd nauwkeurig of vinden waar ter wereld je bent. De Linkit een bord maakt gebruik van GPS gemakkelij
Aan de slag met één Linkit + Blynk

Aan de slag met één Linkit + Blynk

Dus ik was messing rond met de Linkit één en wolk besturingsplatform door Mediatek maar zijn nog steeds in haar ontwikkelingsstadia en op dit moment is helaas niet de beste en eenvoudigste manier om te gaan. Blynk is op dit moment de beste manier om
Aan de slag met LinkIt One - LEDs

Aan de slag met LinkIt One - LEDs

Ik heb onlangs een LinkIt één bord, die het is een geweldig alternatief voor een Arduino met een heleboel functies verpakt in een klein pakket. Het heeft een ingebouwde WIFI, GPS, Bluetooth, GSM, Micro SD kaart slot en een hoofdtelefoonaansluiting va
Aan de slag met LinkIt One - Servo

Aan de slag met LinkIt One - Servo

In de laatste instructable toonde ik u hoe aan de slag met een LinkIt één en een LED knipperen en maken patronen te gebruiken. Dit is deel twee van de serie waar ik je laten zien hoe je begon met Servos met de link het één en het instellen van een se
Aan de slag met LinkIt One - GPS

Aan de slag met LinkIt One - GPS

Dit instructable is is een onderdeel van een reeks instructables waarin ik laten zien hoe je aan de slag met een LinkIt één bord. In de vorige instructable toonde ik u hoe u uw LinkIt One verbinding met een WiFi-netwerk, in dit instructable ik ga u l
LinKit één aan de slag met GPS

LinKit één aan de slag met GPS

In dit instructable ik ga u laten zien hoe aan de slag met de Linkit een GPS, dit zal communiceren met GPS-satellieten te geven u de locatie in Latitude en longitude.Stap 1: Lijst van onderdelenLinKit OneGPS-antenneMicro USB-kabelStap 2: Aansluiten v
LPG / Biogas detectiesysteem met MediaTek LinKIt One

LPG / Biogas detectiesysteem met MediaTek LinKIt One

De LinKIt een ontwikkelplatform werd ontworpen en gelanceerd door MediaTek Labs met een kleine footprint, waarmee de oprichting van wearables en IoT apparaten, met rijke connectiviteit. Instructables HQ hebben bezaaid met ongeveer 250 leden van de Ge
Aan de slag met LinkIt One - knippert een LED

Aan de slag met LinkIt One - knippert een LED

Hoi!Bent u vaak verward door de hele wereld nieuwe borden en tech die om de paar maanden houden komen?Bent u vaak op zoek op google gewoon zin te maken van dit alles?Bent u bereid om echt geweldig projecten te maken, maar weet niet waar te beginnen?B
Aan de slag met LinkIt One - servo's

Aan de slag met LinkIt One - servo's

Wat is het punt van het hebben van een ontwikkel bord als u cant verplaatsen dingen mee?Dit is de gids die u aan de slag met met behulp van Servos (digitaal gestuurd reductiemotoren) in uw projecten met behulp van de LinkIt een bord krijgt.Dit is wee
Bouwen van een Sensor van de nabijheid met de Linkit One

Bouwen van een Sensor van de nabijheid met de Linkit One

Naderingssensoren zijn cool om te werken met especial tijdens het ontwerpen van robots, laat het ultrasone afstand module of een IR sensor van de nabijheid. In dit ga ik laten zien hoe het ontwerpen van uw eigen IR sensor van de nabijheid met een bos
Switch met de Linkit One Touch

Switch met de Linkit One Touch

In deze instructables ga ik u tonen hoe te maken van een touch-switch met behulp van de Linkit één bestuur. Dit is een Capacitieve touch en niet een resistive touch, zodat u kon om veiligheidsredenen gebruiken of gewoon om te schakelen op de lichten
Aan de slag met LinkItOne

Aan de slag met LinkItOne

Mediatek heeft verstrekt een LinkIt Software Development Kit(SDK) voor de ontwikkeling van apps voor LinkIt één apparaten. Het bestaan van een SDK die integreert met de Arduino software te leveren van een vertrouwde ontwikkelomgeving. Dus hebt u een
Powering hoog aangedreven LEDs met de LinkIt One

Powering hoog aangedreven LEDs met de LinkIt One

Hey Guys, dit is mijn eerste instructable en in deze Instrutable I 'm gonna Toon u hoe u kunt besturen van hoge huidige beslag LEDs met de LinkIt één bestuur. Hebt u enige ervaring met de LinkIt één bestuur weet je al dat de Linkit een bord een minde