Stap 2: Stap 2: met behulp van twee spi modules-oscilloscoop en golfvorm generator
In deze stap zullen we beide Pmods, gebruiken om te doen dus we moeten openen een van de voorbeelden voor Pmods (ADC of DAC) en voeg de bibliotheek van de andere.
In dit project heb ik gekozen voor het gebruik van SPI1 voor DAC en SPI0 voor ADC
Zie de verbindingen in de afbeelding.
SPI1: Synchrone seriële poort. Dit is een extra SPI interface op de PIC32 microcontroller, die kan worden beoordeeld
met behulp van het DSPI1-object uit de standaard bibliotheek van DSPI. Het is niet toegankelijk met behulp van de standaard bibliotheek van SPI. Verscheidene van de SPI1-signalen worden gedeeld op verschillende manieren met andere perifere functies. SS1 is aangesloten op aansluiting J9, pin 15, de locatie van de verbindingslijn voor digitale pin 7, via een weerstand van 1K ohm. Dit signaal wordt benaderd via digitale pin nummer 71. SDO1 is toegankelijk via de digitale pen 3. Dat is in strijd met een van de PWM-uitgangen toegankelijk via analogWrite(). SDI1 wordt benaderd via digitale pin 38. SCK1 is aangesloten op aansluiting J7, pin 1, de locatie van de verbindingslijn voor digitale pin 8, via een weerstand van 1K ohm. Deze conflicten met externe interrupt INT3. Dit signaal kan worden geraadpleegd via digitale pin-nummer 72
U kunt een bepaalde bibliotheek in een bestaand project of een nieuw project: schets > bibliotheek importeren.
net de code en plak fallowing:
#include < ADCSPI.h >
#include < DACSPI1.h >
#include < DSPI.h >
DACSPI1 myDACSPI1; het object library
zweven dMaxValue = 3;
zweven dMinValue = 0;
zweven dStep = 0.005;
float dValue;
ADCSPI myADCSPI; het object library
unsigned int wValue; niet-ondertekende 16 bit variabele integerwaarde op te slaan
float fValue; float variabele fysieke waarde op te slaan
char sMsg [100]; tekenreeks in houd bericht dat wordt weergegeven op seriële monitor
VOID Setup
{
Maak een verbinding om de gegevens op de seriële monitor weer te geven.
Serial.begin(9600); initialiseren van de PmodDACSPI1 op de SPI
myADCSPI.begin(PAR_ACCESS_SPI0); komt overeen met de DSPI0 - connector JB myDACSPI1.begin(PAR_ACCESS_SPI1); komt overeen met de DSPI1 - connector J1
}
void loop
{
fysieke waarde tussen minimale en maximale waarde verhogen
voor (dValue = dMinValue; dValue < = dMaxValue; dValue += dStep)
{
waarde verzenden naar de DA-converter
myDACSPI1.WritePhysicalValue(dValue);
vertraging(20);
Wacht enige tijd
fValue = myADCSPI.GetPhysicalValue () * 15; lezen van fysieke waarde
sprintf (sMsg, "%f\r", fValue); indeling tekst moet worden weergegeven
Serial.println(sMsg);
weergavetekst op seriële monitor
vertraging(20);
}
afname van fysieke waarde tussen maximale en minimale waarde
voor (dValue = dMaxValue; dValue > = dMinValue; dValue-= dStep)
{
waarde verzenden naar de DA-converter
myDACSPI1.WritePhysicalValue(dValue);
vertraging(20); Wacht enige tijd
fValue = myADCSPI.GetPhysicalValue () * 15; lezen van fysieke waarde
sprintf (sMsg, "%f\r", fValue); indeling tekst moet worden weergegeven
Serial.println(sMsg); weergavetekst op seriële monitor
vertraging(20);
}
}
Nadat u de code hebt geplakt, u het programma van de Raad van bestuur: en je hebt om te beginnen met de seriële Osciloscope software.
In deze korte film op minute 1:55, kunt u het gebruik van seriële Osciloscope software
Dank u voor geïnteresseerd zijn in mijn "instructables".