Stap 8: Bibliotheken en globale variabelen
Deze stap zal discussiƫren over de bibliotheken en globale variabelen voor de uitvoering van de beweging detectie routine. Ten eerste, laten we bespreken de nodige bibliotheken.
#include
#include < Adafruit_MCP23017.h >
#include
De Wire.h -bibliotheek wordt geleverd met de Arduino IDE en hoeft niet te worden gedownload. Deze bibliotheek staat de Arduino voor toegang tot de analoge ingangen nodig voor het lezen van de versnellingsmeter. De andere twee bibliotheken zijn er om de functies die nodig zijn voor het gebruik van het LCD-scherm van Adafruit RGB. Deze bibliotheken kunnen worden gedownload van de Adafruit github repository. In de koppelingen in de eerdere stappen, kan de verwijzingen naar de downloadbestanden worden gevonden. Maken het de nieuwe bibliotheken voor de Arduino IDE, simpelweg uittreksel het .zip dossier in de omslag van de "bibliotheken" (niet lib) onder het programmabestand van de Arduino. U zal echter moeten naar de map hernoemen omdat de naam it's downloaden als een ongeldige naam is. Verwijder de "-" en de "meester" in de naam. U zal moeten opnieuw beginnen de IDE Voltooi de link.
Vervolgens bespreken we de globale variabelen en objecten verklaard uit te voeren van de code.
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield(); de LCD-object definiƫren als lcd
#define groen 0x2 //define de groene kleur voor het LCD-scherm
Het bovenstaande maakt een object met de naam lcd. Dit object zal worden gebruikt om te bellen van specifieke taken betreffende het LCD-apparaat. Bovendien is de definitie van groen in dit geval een hex nummer dat wordt gebruikt om te vertellen van het LCD-scherm welke kleur weer te geven van de volgende in. Dit kan worden gewijzigd door middel van verschillende hex getallen.
Verklaren van input pinnen
Const int xInput = A0; Const int yInput = a1 worden verkregen; Const int zInput = A2; int idleX = 0;
Het bovenstaande verklaart de analoge input pinnen voor de versnellingsmeter.
int idleY = 0; int idleZ = 0; int idlemaxX = 0; int idlemaxY = 0;
int idlemaxZ = 0; int idleminX = 0; int idleminY = 0; int idleminZ = 0;
Het bovenstaande initialiseert de inactieve variabelen voor de versnellingsmeter. Dit moeten als globale variabelen worden gedefinieerd, omdat ze worden gebruikt in zowel de instelling en de lus routines. Later, zal men zien dat de ruststand opnieuw gedefinieerd telkens die de controller is ingeschakeld. Hiermee voorkomt u dat fouten moeten de milieu omstandigheden veranderen de inactieve status-waarden.
Meerdere monsters geluiddempingsinrichtingen nemen
Const int sampleSize = 10;
int dir = 0;
Steekproefgrootte is verklaard ter vermindering van lawaai in de metingen van de versnellingsmeter. Telkens wanneer de waarden worden gelezen, zijn 10 monsters genomen en dan gemiddeld. De variabele dir wordt gebruikt om te communiceren wat knop op het LCD-scherm is ingedrukt. Dit vertelt de LCD welke informatie moet worden weergegeven.