// Ersatzboard Drucksensor für Pluggit V4 // https://www.mikrocontroller.net/topic/477458 // Eingesetzer Controller: ATTINY85 / 1MHz int // Sensoren: 2 Stück Sensirion SDP-810-500Pa // Erstellt: 15.08.21 Daniel F. // neu V2: Testfunktion um beide Ausgänge auf 10V zu schalten // neu V2: Dämpfung des Sensorsignals // neu V3: PWM nun auf Pins 9&10 mit 12bit Auflösung // neu V3: Nachbildung auch von der neueren SDP1000-L05-Platine wenn Pin2 auf GND gesetzt ist // neu V4: Umstellung auf ATTINY85 const int PWM10VS1 = 3960; //PWM(0...4095) für Justage 10V-Ausgangsspannung Sensor1 (Abgleich Analogschaltung Spannungsverstärker) const int PWM10VS2 = 3960; //PWM(0...4095) für Justage 10V-Ausgangsspannung Sensor2 (Abgleich Analogschaltung Spannungsverstärker) #include volatile int Dac[2]; volatile uint8_t* Port[] = { &OCR1A, &OCR1B }; volatile int Cycle = 0; // Overflow interrupt ISR (TIMER1_OVF_vect) { static int rem[2]; for (int chan=0; chan<2; chan++) { int remain; if (Cycle == 0) remain = Dac[chan]; else remain = rem[chan]; if (remain >= 256) { *Port[chan] = 255; remain = remain - 256; } else { *Port[chan] = remain; remain = 0; } rem[chan] = remain; } Cycle = (Cycle + 1) & 0x0F; } void analogWrite12 (int chan, int value) { cli(); Dac[chan] = value; sei(); } float Druck1=0.0; float Druck2=0.0; int PWM1=0; int PWM2=0; boolean SDP1000L05; void setup() { // Timer/Counter1 doing PWM on OC1A (PB1) and OC1B (PB4) TCCR1 = 1<