Lab test bänk-oscilloskop/vågform (2 / 2 steg)
Steg 2: Steg 2: använda två spi moduler-oscilloskop och vågform generator
I det här steget kommer vi använder båda Pmods, så får vi öppna ett av exemplen för Pmods (ADC eller DAC) och lägga till andra bibliotek.
I detta projekt valde jag att använda SPI1 för DAC och SPI0 för ADC
Se anslutningar i bilden.
SPI1: Synkron seriell port. Detta är ett ytterligare SPI gränssnitt på PIC32 microcontroller som kan bedömas
med DSPI1-objektet från ITPI standardbiblioteket. Det är inte att nå via standardbiblioteket för SPI. Flera av SPI1 signalerar delas på olika sätt med andra perifera funktioner. SS1 är ansluten till kontakten J9, pin 15, kontakt platsen för digital stift 7, via en 1K ohms motstånd. Denna signal nås via digital pin nummer 71. SDO1 nås via digital stift 3. Här står i konflikt med en av PWM utgångar åtkomliga med hjälp av analogWrite(). SDI1 nås via digital pin 38. SCK1 är ansluten till kontakten J7, stift 1, kontakt platsen för digital stift 8, via en 1K ohms motstånd. Detta strider mot yttre mellanjobb INT3. Denna signal kan nås via digital pin nummer 72
Du kan lägga till ett visst bibliotek i ett befintligt projekt eller ett nytt projekt från: skiss > Importera bibliotek.
och bara klistra in följande kod:
#include < ADCSPI.h >
#include < DACSPI1.h >
#include < DSPI.h >
DACSPI1 myDACSPI1; biblioteksobjektet
flyta dMaxValue = 3;
flyta dMinValue = 0;
flyta dStep = 0,005;
float dValue;
ADCSPI myADCSPI; biblioteksobjektet
unsigned int wValue; Osignerat 16 bitars variabel att lagra heltal
float fValue; float variabel att lagra fysiskt värde
char sMsg [100]. teckensträng till hålla meddelandet som visas på serial monitor
void setup()
{
Skapa en anslutning för att visa data på den seriella bildskärmen.
Serial.BEGIN(9600); initiera PmodDACSPI1 på SPI
myADCSPI.begin(PAR_ACCESS_SPI0); motsvarar DSPI0 - connector JB myDACSPI1.begin(PAR_ACCESS_SPI1); motsvarar DSPI1 - kontakt J1
}
void loop()
{
öka fysiskt värde från lägsta till högsta värde
för (dValue = dMinValue; dValue < = dMaxValue; dValue += dStep)
{
Skicka värdet till DA-omvandlare
myDACSPI1.WritePhysicalValue(dValue);
Delay(20);
vänta lite tid
fValue = myADCSPI.GetPhysicalValue () * 15; Läs fysiskt värde
sprintf (sMsg, "%f\r", fValue); formatera text som ska visas
Serial.println(sMsg);
Visa text på serial monitor
Delay(20);
}
minska fysiskt värde från högsta till lägsta värde
för (dValue = dMaxValue; dValue > = dMinValue; dValue-= dStep)
{
Skicka värdet till DA-omvandlare
myDACSPI1.WritePhysicalValue(dValue);
Delay(20); vänta lite tid
fValue = myADCSPI.GetPhysicalValue () * 15; Läs fysiskt värde
sprintf (sMsg, "%f\r", fValue); formatera text som ska visas
Serial.println(sMsg); Visa text på serial monitor
Delay(20);
}
}
Efter att du klistrat in koden du programmera styrelsen: och du måste starta den seriella Osciloscope programvaran.
I denna korta film på minuten-1:55 kan du se hur du använder Serial Osciloscope programvara
Tack för att vara intresserad av min "instructables".