RC controle en Arduino: A Complete Works (6 / 10 stap)

Stap 6: Tweede programma: Servo uitgang


ik de afbeelding van Adafruit de site opgeheven en kon niet zeggen genoeg goede dingen over hen!

Nu begint de pret!  Met behulp van het programma die ik eerder heb geschetst, kunt sommige servo-output met behulp van de standaard servo-bibliotheek toevoegen.  Ik heb ook besloten om een matrix van de invoergegevens in plaats van acht afzonderlijke variabelen gebruiken.  Hebt u een Uno, die mij zal zitten using laatstgenoemde, alles wat je hoeft te doen is de pin locatie variabelen wijzigen.

Dit zal zal schetsen Lees alle 8 kanalen van een RC-ontvanger en de waarden via seriële monitor input.
Geprogrammeerd voor de Arduino MEGA 2560

Opgenomen bibliotheken
#include < Servo.h >

Variabelen definiëren:
Const int chA = 22;  Constante variabelen met betrekking tot pin locaties
Const int chB = 27;
Const int chC = 30;
Const int chD = 35;
Const int chE = 38;
Const int chF = 43;
Const int chG = 46;
Const int chH = 51;

Signaal Conditioning grenzen
Const int lo = 920;
Const int hi = 1640;
Const int deadlo = 1270;
Const int deadhi = 1290;
Const int centrum = 1280;

int ch [8];  Array opslaan en weergeven van de waarden van elk kanaal
int ch4;  Servo uitgang variabele
Servo steer;  Stuur Servo

de setup-routine wordt uitgevoerd zodra wanneer u drukt op reset:
VOID Setup
{
Initialiseer seriële communicatie met 9600 bits per seconde:
Serial.begin(9600);

Input Pins:
pinMode(chA,INPUT);
pinMode(chB,INPUT);
pinMode(chC,INPUT);
pinMode(chD,INPUT);
pinMode(chE,INPUT);
pinMode(chF,INPUT);
pinMode(chG,INPUT);
pinMode(chH,INPUT);

Servo-uitgangen:
Steer.attach(2);      Stuur Servo koppelen aan PWM Pin 2
}

Hoofdprogramma
void loop
{
Lees de ingangskanalen
CH [0] = pulseIn (chA, hoge);  Lezen en opslaan van kanaal 1
CH [1] = pulseIn (chB, hoge);
CH [2] = pulseIn (chC, hoge);
CH [3] = pulseIn (chD, hoge);
CH [4] = pulseIn (chE, hoge);
CH [5] = pulseIn (chF, hoge);
CH [6] = pulseIn (chG, hoge);
CH [7] = pulseIn (chH, hoge);

Input signaal conditioning
for (int i = 0; ik < = 8; i ++) //Signal Conditioning lus
{
Als (ch [i] < = lo) //Trim geluid vanaf de onderkant
{
CH [i] = lo;
}

Als (ch [i] < = deadhi & & ch [i] > = deadlo) //Create Dead-Band
{
CH [i] = midden;
}

Als (ch [i] > = Hallo) //Trim lawaai van bovenkant
{
CH [i] = Hallo;
}
}

Stuur controle Output op kanaal 4
CH4 = ch [3];
Als (ch4 > = lo & & ch4 < = deadlo)
{
CH4 = kaart (ch4, lo, deadlo, 0, 90);
}
anders als (ch4 == center)
{
CH4 = 90;
}
anders als (ch4 > = deadhi & & ch4 < = Hallo)
{
CH4 = kaart (ch4, deadhi, Hallo, 90, 180);
}
Steer.write(CH4);

Seriële uitgangen
Serial.Print ("Ch1:");  Tekenreeks op seriële Monitor te onderscheiden van variabelen weergeven
Serial.Print (ch[0]);     Afdrukken in de waarde van kanaal 1
Serial.Print ("|");
Serial.Print ("Ch2:");
Serial.Print (ch[1]);
Serial.Print ("|");
Serial.Print ("Ch3:");
Serial.Print (ch[2]);
Serial.Print ("|");
Serial.Print ("Ch4:");
Serial.Print (ch[3]);
Serial.Print ("|");
Serial.Print ("H5:");
Serial.Print (ch[4]);
Serial.Print ("|");
Serial.Print ("H6:");
Serial.Print (ch[5]);
Serial.Print (& v. uot; | ");
Serial.Print ("H7:");
Serial.Print (ch[6]);
Serial.Print ("|");
Serial.Print ("Ch8:");
Serial.println (ch[7]);
Serial.Print ("sturende Output:");
Serial.println (ch4);
}

Ik ga ervan uit dat de servo had een zenuwinzinking en een lichte tik ontwikkelde? Het terminal-venster bevestigt dat de wielen gewoon viel OFF van uw project, nu wat? Voordat u uw servo of Arduino aan het huis van de moer committeren is het iets dat kan worden gewerkt rond.  Het probleem is hoe de Arduino servo bibliotheek de gewenste output signaal genereert. Het onderbreekt het hoofdprogramma te handhaven van de 50Hz pols en zal in strijd zijn met de pulsein functie corrumperende valuesbeing lezen. Zowel de servo-bibliotheek en de pulsein zijn interrupt gebaseerd maar welke we kijken vervangen? Ik koos voor het elimineren van de servo-bibliotheek na veel google-fu.

Gerelateerde Artikelen

Control An Arduino met uw telefoon

Control An Arduino met uw telefoon

Hallo iedereen! In dit instructible ik zal u tonen hoe te controleren en lees sensoren met arduino en blynk. Blynk is een app waarmee volledige controle over arduino, rasberry pi en vonk kern. Met uw smartphone! En het is net zo eenvoudig als wat cod
OSD-Audio ATM-7 Smartphone Speaker controle met Arduino en Blynk

OSD-Audio ATM-7 Smartphone Speaker controle met Arduino en Blynk

Deze dagen zijn er verschillende manieren om te implementeren multi-zone geluid met behulp van smartphone gebaseerd controle, maar de meeste zijn beperkt tot een aantal zones of vereisen duur merkgebonden vakken op elke locatie (Hello! Sonos). Een sp
Gemakkelijk, omkeerbare Motor controle voor Arduino (of een Microcontroller)

Gemakkelijk, omkeerbare Motor controle voor Arduino (of een Microcontroller)

dit project maakt gebruik van slechts drie hoofdcomponenten voor voorwaartse en omgekeerde bepalen voor een interne motor.  U kunt het gemakkelijk interface naar een Arduino of elke andere microcontroller.Het is zo eenvoudig - u kunt het draad van "f
Magnetische ophanging demonstratie controle door Arduino

Magnetische ophanging demonstratie controle door Arduino

Magnetische ophangsysteem Demo is een apparaat dat een object door de magnetische kracht kan opschorten. Een set van parameters om een object in gestage schorsing toestand kan worden verkregen via PID algoritme.Stap 1: Hardware Open de foto's.Stap 2:
Standalone WiFi Radio Control Panel (Arduino Powered)

Standalone WiFi Radio Control Panel (Arduino Powered)

ik wilde een Internet Radio voor een lange tijd, en was blij om te zien de Tinkernut Wifi Radio project (http://tinkernut.com/archives/2387 ), die ik gebouwd en hebben genoten voor een paar maanden.Echter, ik niet echt schelen voor de controle-interf
Krachtige controle met Arduino: Interfacing een lineaire Actuator

Krachtige controle met Arduino: Interfacing een lineaire Actuator

In dit specifieke artikel zullen we bespreken hoe eenvoudig het is om controle van krachtige mechanische kracht met behulp van een microcontroller zoals de Arduino en een lineaire Actuator van DC lineaire actuatoren Inc.Stap 1: MicrocontrollersRaspbe
MIDI controle licht Arduino

MIDI controle licht Arduino

Hallo, is deze post gemaakt door Jesus Alberto Cejas en Pablo Javier Ruiz te tonen u ons Project over een muzikale toetsenbord, mooie lichten en Arduino.Dit project was voor 'Creatieve Electronics', een Beng elektronica Engineering 4e jaar module op
RGB led control [PC, Arduino]

RGB led control [PC, Arduino]

delen is de zorg... dat is het motto van dit instructable... : DHier is een traktatie voor iedereen de led freaks graag...Ik wilde bereiken van volledige controle van mijn computer chassis aangepaste led strips, 3 stroken exacte, volledige controle z
BLDC Motor Control met Arduino, geborgen HD-motor en Hall sensoren

BLDC Motor Control met Arduino, geborgen HD-motor en Hall sensoren

er is veel belangstelling deze dagen onder hobbyisten bij het beheersen van Borstelloze DC (BLDC) motoren, die hebben betere prestaties en betere energie-efficiëntie overtraditionele gelijkstroommotoren, zijn maar moeilijker te gebruiken. Er bestaan
TV remote controlled auto - Arduino

TV remote controlled auto - Arduino

Hack uw afstandsbediening en de controle van een rc auto met, met behulp van de "Arduino Uno".Dit is een simpele manier om te controleren uw auto met behulp van de IR ontvangersmodule geprogrammeerd op arduino board en de afstandsbediening van d
Motor Control met arduino motor shield via Web

Motor Control met arduino motor shield via Web

In dit project, zal ik de controle van DC motor (ventilator Computer) met motor shield(official) via webpagina's.U kunt de motor zoals trage of snelle snelheid en stop.Ook als u wilt, kunt u controleknop toevoegen of wijzigen van besturingsknop in we
VBNET controle van ARDUINO over TCP RS232

VBNET controle van ARDUINO over TCP RS232

PROJET PUPITRE SERIËLE VIA TCPVB NET / XPORT (LAN) ou CSW M85 (WIFI LAN) ouCIE M10 (LAN) / ARDUINOInleiding:Met dit project zal u zitten kundig voor pilot uitgangen van een arduino met een virtuele vb.net pusbutton of een schakelaar voor digitale of
Een gemakkelijke manier om controle je Arduino Pins van het internet. (Geen port forwarding)

Een gemakkelijke manier om controle je Arduino Pins van het internet. (Geen port forwarding)

Controle Arduino pinnen van het internet, zonder gebruik te maken van complexe haven port forwarding opstellingen op uw firewall.Zolang de Arduino is aangesloten op uw netwerk en een geldig IP-adres heeft u zal zitten kundig voor wijzigen dePIN statu
Gyroscoop leidde controle met Arduino

Gyroscoop leidde controle met Arduino

In dit project zal ik u tonen hoe te bouwen van een eenvoudige 4 led tilt dimmer met een gyroscoop en een arduino uno. Er zijn 4 LED's die zijn gerangschikt in de vorm van een "+" en ze meer als je het breadboard Tilt zal oplichten.Stap 1: mater