RPi-Pico Zweikanal-Oszilloskop                 

              

Elektronik-Labor  Projekte  Mikrocontroller  Raspberry        


Aus RPi Pico Schaltungen und Projekte Kap. 24

Das Zweikanal-Oszilloskop füllt ein Array mit 1000 Werten jeweils abwechselnd mit den Ergebnissen beider Kanäle. Die Abtastperiode dt wird beim Start auf 10 µs eingestellt, sodass die Abtastfrequenz 100 kHz beträgt und die Ablenkzeit 1 ms/Skt. Die Geschwindigkeit kann über ein serielles Kommando verändert werden. Auch diesmal wird wieder ein Testsignal mit 2 kHz zur Verfügung gestellt. 

//Pico_Scope2 Zweikanal
#include "pico/stdlib.h"
#include "hardware/adc.h"
#include "hardware/pwm.h"
#include "pico/multicore.h"

void setup() {
  Serial.begin(115200);
}

void loop() {}

void setup1() {
  unsigned int scope[1000];
  unsigned int dt, dt2;
  dt=10;
  gpio_set_function(0, GPIO_FUNC_PWM);
  pwm_set_wrap(0, 62499);  //PWM 2 kHz, 50%
  pwm_set_gpio_level(0, 31250);
  pwm_set_enabled(0, true);
  adc_init();
  adc_gpio_init(26);
  adc_gpio_init(27);
  adc_select_input(0);
  while (true) {
    if (Serial.available()){
     
dt2 = Serial.parseInt();
      if( dt2>0) dt=dt2;
   
}
    uint32_t t = time_us_32();
    for (int n = 0; n < 500; n++){
      adc_select_input(0);
      scope[2*n]=adc_read();
      adc_select_input(1);
      scope[2*n+1]=adc_read();
      t+=dt;
      while (t>time_us_32());
    }
    for (int n = 0; n < 500; n++){
      Serial.print ((int) scope[2*n]*3300/4095);
      Serial.print (" ");
      Serial.print ((int) scope[2*n+1]*3300/4095);
      Serial.print (" ");
      Serial.print (0);
      Serial.print (" ");
      Serial.println (3300);
    }
    sleep_ms(1000);
  }
}

void loop1() {
}
 

Das erste Messbeispiel zeigt das 2-kHz-Signal nach einem Tiefpass mit 10 kΩ und 10 nF am ersten Kanal. Der zweite Kanal wurde an GND gelegt. Die Oszillogramme enthalten immer auch zwei Hilfslinien bei 0 und bei 3300 mV. Damit wird die automatische Bereichsanpassung des seriellen Plotters umgangen, die sonst bei unterschiedlichen Signalen immer wieder die y-Skala anpasst.

Mit einer Einstellung auf 500 µs ergibt sich ein Zeitfaktor von 50 ms/Skt Die Messung zeigt zwei offene Eingänge mit angeschlossenen Messkabeln. In beide streut ein 50-Hz-Störsignal mit unterschiedlicher Amplitude ein.  Bei einer Periode von 20 ms sieht man jeweils 2,5 Schwingungen in einem Skalenteil.

Bei der Untersuchung elektronischer Schaltungen kann ein Zweikanal-Oszilloskop sehr nützlich sein. Hier wurde eine typische Generatorschaltung mit dem Präzisions-Timer NE555 aufgebaut. Mit dem Oszilloskop werden die Spannung am Ladekondensator und das Ausgangssignal des NE555 gemessen. In diesem Fall hat sich eine Ablenkzeit von 2 ms/Skt als günstig erwiesen, die mit einer Abtastzeit von 20 µs eingestellt wurde.



Elektronik-Labor  Projekte  Mikrocontroller  Raspberry