Digital potentiometrar Arduino Shield (2 / 3 steg)
Steg 2: Programvaran
Först och främst tar i konto som jag har använt Streaming bibliotekför att förenkla de seriella utskriftsfunktioner av skiss (används för felsökning och övervakning). Den mest uppdaterade versionen (V.5) kanna bli dataöverföring samt skissen från denna sida.
Hur fungerar skissen
Förklaras i några ord, replikerar sköld skissen input trigger värdena generera ett proportionellt värde till motsvarande digital utgång.
Programmet är väl dokumenterat så det inte är svårt att förstå hur varje del fungerar. Jag kommer att spendera några ord bara på rubriken programvara där de globala parametrarna definieras.
#define MAXPOT 6 / / Max antal potentiometrar
#define SERIALMON
Undef SERIALMON att undvika seriell utgång. För att testa ändamål endast
Enheter att Visa potentiometer motstånd värde.
#define KOHM 0 / / ange 0 om motståndet bör vara i Ohm istället för K
Enheter att Visa digital potentiometer resisance värdet.
#define DKOHM 1 / / ange 0 om motståndet bör vara i Ohm istället för K
Testa analoga potentiometrar värden i Ohm
#define ANALOGPOT 1000,00 / / Digital potentiometer värde i Ohm
#define DIGITALPOT 100000.00 / / steg avdelare från analog omvandlare
#define ANALOGDIVIDER 1024.00 / / steg divider digital potentiometerns
#define DIGITALDIVIDER 256
SPI klockfrekvens.
Högre är processorns klockfrekvens, högre är digital potentiometern
svar. Värdet uttrycks i behandlingen per sekund
Beräkningen av frekvens är ett heltal avrundas.
#define DIGIPOT_FREQ 8
För att felsöka programmet utlöser ser vad som händer samtidigt som interagerar med analogt kodraden
#define SERIALMON
aktiverar seriella bildskärmen kontinuerligt dumpa tillståndet för potentiometrar (analoga och digitala)
Ersätta denna kodrad med
#undef SERIALMON
inaktivera denna funktion. Beroende på den hastighet du anger kan seriella kommunikationen mellan Arduino och datorn, kontinuerlig utdata begränsa arbetande hastighet av programmet.
Med seriella skärmen aktiverats (jag har testat programmet med en arbetande hastighet på 9600 men det fungerar bättre vid högre hastigheter), skärmdump bilden visar ett exempel på vad du ser.
Anteckningar
- På en rimlig seriell hastighet frekvensen bildskärmen uppdateras beror på ständiga DIGIPOT_FREQ. Ändra SPI klockfrekvensen också klockan LED på krets ändras dess blinkande hastighet.
- Beräkningen av ungefärliga motstånd baserat på analog upptäckt värdet och produktionen beräknas för varje potentiometer par (analog vs digital) är endast för testning och demonstration syften. Du kan ta bort denna beräkning del eftersom dessa värden har ingen påverkan på beteendet hos programmet.