In diesem Teil geht es weiter mit dem User Interface. Der Messbereich des AD-Wandlers ist mit ca. 4V nicht gerade komfortabel ausgestattet. Mit einem (variablen) Vorteiler kann man den Bereich erweitern. Softwareseitig lässt sich dieser recht einfach einbinden. Ich habe eine 4-Kanal Platine die recht einfach aber wirksam aufgebaut ist. Prinzipiell besteht der Vorteiler immer aus einem Widerstand R1 und R2. Genau diese Werte werden hier in der Software einfach angegeben. Alles andere macht die Software. Wird der Haken bei VORTEILER herausgenommen befindet sich der AD-Wandler rechnerisch im Standardmodus. Anders ausgedrückt, dann zeigt er den Spannungswert am Ausgang des Spannungsteilers an. Ist der Haken gesetzt zeigt der AD Wandler den Spannungswert am Eingang des Vorteilers. Die Umrechnung erfolgt also auf Basis der Bauteilwerte in der Software.
In diesem Bild noch nicht implementiert, die 3 Felder für AD1..AD3. Das ist ein wenig Copy & Paste, sowie die Anpassung einiger Variablen.
//
// Abfrage des toggleButtons VORTEILER
//
void on_AD0Vorteiler_toggled (GtkToggleButton *toggleButton) {
char status;
if (gtk_toggle_button_get_active(toggleButton)) {
status = 1;
} else {
status = 0;
}
if (status == TRUE) {
gtk_toggle_button_set_active(toggleButton, TRUE);
IOData.AD_Vorteiler[0] = 1;
} else {
gtk_toggle_button_set_active(toggleButton, FALSE);
IOData.AD_Vorteiler[0] = 0;
}
on_refresh_clicked_AD();
}
//
// Abfrage des Eingabefeldes für R1
//
void on_AD0Vorteiler1_activate (GtkWidget *entry) {
const gchar *entry_text;
entry_text = gtk_entry_get_text (GTK_ENTRY(entry));
IOData.AD_Vorteiler1[0] = atoi(entry_text);
on_refresh_clicked_AD();
}
Hinterlasse einen Kommentar