kramann.info
© Guido Kramann

Login: Passwort:










Robuste Systemintegration
1 Grundlagen
..1.1 Newton
....1.1.1 LinearSchwinger
....1.1.2 Daempfung
....1.1.4 ODE
....1.1.5 Saaluebung
..1.2 NewtonEuler
....1.2.1 Traegheitsmomente
....1.2.2 Modellgleichungen
....1.2.3 Einfachpendel
..1.3 Scilab
....1.3.1 Erste_Schritte
....1.3.2 Skripte
....1.3.3 Funktionen
..1.4 Laplace
....1.4.1 Eigenwerte
....1.4.2 PT1
..1.5 Regleroptimierung
....1.5.1 Guetefunktion
....1.5.2 Heuristiken
....1.5.3 Scilab
..1.6 Einstellregeln
....1.6.1 Totzeit
....1.6.2 Methode1
....1.6.3 Methode2
....1.6.4 Scilab
..1.7 Zustandsregler
..1.8 Polvorgabe
..1.8 Polvorgabe_alt
..1.9 Beobachter
....1.9.1 Haengependel
..1.10 Daempfungsgrad
..1.11 Processing
....1.11.1 Installation
....1.11.2 Erste_Schritte
....1.11.3 Mechatronik
....1.11.4 Bibliotheken
....1.11.5 Uebung
....1.11.6 Snippets
......1.11.6.1 Dateioperationen
......1.11.6.2 Bilder
......1.11.6.3 GUI
......1.11.6.4 Text
......1.11.6.5 PDF
......1.11.6.8 Maus
......1.11.6.10 Zeit
......1.11.6.13 Animation
......1.11.6.15 Simulation
....1.11.7 Referenzen
..1.12 Breakout
2 Beispiel
3 Beispielloesung
4 Praxis
5 javasci
6 Fehlertoleranz1
7 Reglerentwurf
..7.1 Sprungantwort
..7.2 Messdaten
..7.3 Systemidentifikation
..7.4 Polvorgabe
..7.5 Beobachter
..7.6 Robuster_Entwurf
..7.7 SIL
8 Systementwicklung
9 Arduino
..9.1 Lauflicht
..9.2 Taster
..9.3 Sensor
..9.12 Motor_PWM1
..9.13 Motor_PWM2_seriell
..9.14 Motor_PWM3_analogWrite
..9.15 Scheduler
..9.20 AV
..9.21 Mikrofon
..9.22 Universal
....9.22.1 Laborplatine
....9.22.2 LED_Leiste
....9.22.3 Motortreiber
....9.22.4 Sensoreingaenge
....9.22.5 Taster
....9.22.6 Tests
....9.22.7 Mikrofon
....9.22.8 Lautsprecher
....9.22.9 Fahrgestell
..9.23 Zauberkiste
..9.24 OOP
....9.24.1 Uebungen
..9.25 AVneu
....9.25.1 Tests
..9.26 DA_Wandler
..9.27 CompBoard
....9.27.1 Tastenmatrix
....9.27.2 ASCIIDisplay
..9.28 CTC
..9.29 Tonerzeugung
10 EvoFuzzy
..10.1 Fuzzy
....10.1.1 Fuzzylogik
....10.1.2 FuzzyRegler
....10.1.3 Uebung9
....10.1.5 Softwareentwicklung
......10.1.5.1 AgileSoftwareentwicklung
......10.1.5.2 FuzzyRegler
......10.1.5.3 Uebung
....10.1.6 Umsetzung
......10.1.6.1 FuzzyRegler
......10.1.6.2 Simulation
......10.1.6.3 Optimierung
......10.1.6.4 Uebung
....10.1.7 Haengependel
......10.1.7.1 Haengependel
......10.1.7.2 Simulation
......10.1.7.3 FuzzyRegler
......10.1.7.4 Optimierer
......10.1.7.5 Genetisch
....10.1.8 Information
....10.1.9 Energie
..10.2 Optimierung
....10.2.1 Gradientenverfahren
....10.2.2 Heuristiken
....10.2.3 ModifizierteG
....10.2.4 optim
..10.3 Genalgorithmus
..10.4 NeuronaleNetze
....10.4.1 Neuron
....10.4.2 Backpropagation
....10.4.3 Umsetzung
....10.4.4 Winkelerkennung
..10.5 RiccatiRegler
11 Agentensysteme
12 Simulation
20 Massnahmen
21 Kalmanfilter
..21.1 Vorarbeit
..21.2 Minimalversion
..21.3 Beispiel
30 Dreirad
31 Gleiter
..31.1 Fehlertoleranz

9.21 Nulldurchgänge eines Mikrofonverstärkerausgangs zählen

int sensorwert=0;
int zaehler=0;
int nulldurchgang=0;
int zustand=0;
void setup() 
{
  pinMode(18,INPUT);  //A0  
  Serial.begin(9600);   

  
}

void loop() 
{
  sensorwert = analogRead(11);
 
  if(zaehler==1000)  
  {
  Serial.write(48+(nulldurchgang/1000)%10);
  Serial.write(48+(nulldurchgang/100)%10);
  Serial.write(48+(nulldurchgang/10)%10);
  Serial.write(48+(nulldurchgang/1)%10);
  Serial.write('
');
  Serial.write('
');
  zaehler=0;
  nulldurchgang=0;
  }
  else
  {
      if(zustand==0 && sensorwert<800)    
      {
        nulldurchgang++;
        zustand=1;
      }
      else if(zustand==1 && sensorwert>850)    
      {
        nulldurchgang++;
        zustand=0;
      }
      zaehler++;
  }
  
}

Code 9.21-1: Nulldurchgänge eines Mikrofonverstärkerausgangs zählen

verbesserte Version

int sensorwert=0;
int zaehler=0;
int nulldurchgang=0;
int zustand=0;
int wertalt=0;
void setup() 
{
  pinMode(18,INPUT);  //A0  
  Serial.begin(9600);   

  
}

void loop() 
{
  sensorwert = analogRead(11);
 
  if(zaehler==1000)  
  {
  Serial.write(48+(nulldurchgang/1000)%10);
  Serial.write(48+(nulldurchgang/100)%10);
  Serial.write(48+(nulldurchgang/10)%10);
  Serial.write(48+(nulldurchgang/1)%10);
  Serial.write('
');
  Serial.write('
');
  zaehler=0;
  nulldurchgang=0;
  wertalt=sensorwert;
  }
  else
  {
      if(zustand==0 && sensorwert<wertalt-50)    
      {
        nulldurchgang++;
        zustand=1;
        wertalt = sensorwert;  
      }
      else if(zustand==1 && sensorwert>wertalt+50)    
      {
        nulldurchgang++;
        zustand=0;
        wertalt = sensorwert;  
      }
      zaehler++;
  }

}

Code 9.21-2: Mikrofonauswertung unabhängig von den absoluten Werten.