>'lækker'
Ja. Det er det.
Jeg skulle også have en Nokia 5110 display .... eller en OLED !?!
Mit problem er, at jeg ved ikke, hvilken microcontroller jeg skulle tage.
Dette er koden for en PID-regulator. Og jeg skal beregnet det inden 10µs. Jeg trot, det skal være mindst en 16 Bit microcontroller. Måske en ATXmega. Eller en 32 Bit STM32. En STM32F100 har 24MHz, en 12Bit ADC med ca. 1MHz, en 12Bit DAC og koster kun 18kr. Eller en STM32F407 med 168MHz.
void PID_controller(){
// Get the voltage value.
// Calculate the difference between setpoint and sensor value
rdiff = adc_getResult(CHANNEL1) - adc_getResult(CHANNEL2);
// Integrate, but only, if the output is not in the limit
if (rdiff > 0) {
if (limit != POS)
integrator += rdiff;
}
else if (rdiff < 0){
if (limit != NEG)
integrator += rdiff;
}
// Limit integrator to min and max
if (integrator) > IMAX
integrator = imax;
if (integrator) < -IMAX
integrator = -imax;
// The PD regulator with a scaling factor
reg = rdiff *KP + (meas_old-meas) * KD + integrator * KI;
reg /= SCALE;
// Store the old value for the D-value
meas_old = meas;
limit = NOLIMIT;
// Limit the value
if (reg > +CONTR_LIMIT) {
reg = +CONTR_LIMIT;
limit = POS;
}
if (reg < -CONTR_LIMIT) {
reg = -CONTR_LIMIT;
limit = NEG;
}
// Set the PWM output
pwm_set(channel,reg);
}
gerd