RPi Pico Messlabor  

Elektronik-Labor  Projekte  Mikrocontroller  Raspberry     





Der Pico kann ein universales Messgerät werden und ähnlich wie das Arduino-Messlabor eingesetzt werden. Allerdings ist er etwas zu groß und lässt auf einem kleinen Steckboard zu wenig Platz für die zu untersuchenden Schaltungen. Man könnte zwar ein großes Steckboard nehmen, aber kleiner finde ich feiner. Deshalb habe ich überlegt, etwas kürzere Stiftleisten einzusetzen und links jeweils vier Pinne einzusparen. Damit hat man oben gerade noch den 3V3-Ausgang und alle AD-Eingänge. Unten fehlen zwar drei Ports, aber daran herrscht ja kein Mangel.

Auf der Suche nach einem passenden Steckboard kam mir eines in die Hände, auf dem gerade ein NE555 steckte. Gute Idee, da könnte man ja die typischen Schaltungen aus dem Lernpaket Elektronik genauer untersuchen. So kam es, dass der NE555 das erste Untersuchungsobjekt für das Pico-Labor wurde. Da läuft jetzt ein ganz einfaches Oszilloskop, mit dem ich mir die Signale der Schaltung ansehen kann.




Kondensatorspannung am Pin 2



Entladeimpulse am Pin 7



Ausgangsspannung am Pin 3

Die Oszillogramme zeigen Eingangsspannungen zwischen 0 V und 3300 mV. Damit der Messbereich fest steht, wurde ein Kanal mit 0 V und ein Kanal mit 3300 mV hinzugefügt.


//50-kHz-DDS + Scope
#include "RPi_Pico_TimerInterrupt.h"
#include <math.h>
unsigned char dds[256];
unsigned int ad[1000];
unsigned int f, n, i, j, a1, a2, ph1, ph2, adn;


// Init RPI_PICO_Timer
RPI_PICO_Timer ITimer0(0);
RPI_PICO_Timer ITimer1(1);


bool TimerHandler0(struct repeating_timer *t)
{
  digitalWrite (2,1);
  a1+=ph1;  //256;
  a1&=65535;
  analogWrite(0, (dds[a1>>8]));
  if (adn<1000){
    ad[adn] = analogRead(A2);
    adn++;
  }
  digitalWrite (2,0);
  return true;
}

void setup() {
  Serial.begin(115200);
  pinMode(0,OUTPUT);
  pinMode(2,OUTPUT);
  //analogWriteFreq(125000000);
  analogWriteFreq(25000);
  analogWriteRange(255);
  for (n=0;n<256;n++)  dds[n]= 128+127.9*sin(PI*n/128.0);
  ITimer0.attachInterruptInterval(13, TimerHandler0);  //50 kHz
}

void loop() {
    f=600;
    ph1 = f*256/195;
    adn=0;
    delay(1000);
    for(n=0;n<500;n++){
      Serial.printf("A %1.2f ", 0);
      Serial.printf("C %4.2f ", 3300.0);
      Serial.printf("B %4.2f \n", (ad[n+500]*3300.0/1023));
    }
}



Hinweis von Christian Grunwald

Auch mir war der Pico zu groß, aber man kann ohne Probleme die Platine hinter dem Quarz mit einem Dremel um 6 Pin-Reihen einkürzen. Es gibt dort keine kritischen Leiterbahnen und man erhält einen kleinen Pico fürs Breadboard.










Elektronik-Labor  Projekte  Mikrocontroller  Raspberry