Hallo, ich habe mir eine Widerstandsdekade gebaut und bin nun am Überlegen wie man das Programm weiter verbessern könnte. Momentan gibt man einfach den gewünschten Wert ein zB "1", "2" Drückt man dann die Raute-Taste wird der Wert gestellt und freigeschaltet. Mit der *-taste kann man alles wieder löschen und die Verbindung zwischen den Buchsen ist wieder offen. Ich würde nun gerne eintippen können 1 + A + 5 für 1,5Ohm oder 1 + B + 5 für 1,5kOhm oder 1 + C + 5 für 1,5MOhm Wie würde man das denn machen? Ich dachte erst mit einem Array. Dass man die Zahl vor dem Faktor dann an die entsprechende Stelle schiebt..das funktionierte auch im Ansatz erscheint mir aber doch umständlich. Ein anderer Ansatz, der mir in den Sinn gekommen ist, die Zahl vor dem Faktor mit diesem dann zu multiplizieren.. Wie würdet ihr das denn angehen?
:
Verschoben durch User
Setz ein Flag für A, B, oder C und bei # ließt du dass dann aus und multipliziert das ganze entsprechend vor der "Ausgabe".
Oder Du nutzt # als Dezimaltrennzeichen und A,B,C um die Eingabe abzuschliessen: 1#5A -> 1,5 Ohm 1#5B -> 1,5 kOhm 1#5C -> 1,5 MOhm Das sollte das verarbeiten noch etwas einfacher machen
Nee, der Weg ist schon richtig. Man sagt (zumindest bei uns in der Fa.) 1R5, 1M5 oder 1k5. Also die Tasten passend umbeschriften und los, dann ist das direkt und einfach zu merken. Einfach so tippen wie man spricht: 2-2-k-1-go. 1-M-5-go. 1-0-k-go. Schön wäre auch k-1-go für 100R, einfacher zu tippen. Als algo natürlich was angepasstes. Du merkst dir doch jetzt auch die Tasten vor dem "go". Da muss das Case/select ja nur um ein select ergänzt werden. Also - Setze R auf 0 - Erste Stelle Zahl: Setze R auf X. Faktor: Merke F. - Zweite Stelle Zahl: Setze R*10, plus X. Faktor: Merke F. - Dritte Stelle Zahl: Setze R*10, plus X; F/10. Faktor: Merke F. - 4. dito - 5. dito - Go? Dann RxF, Relais setzen und los. Das gibt z.B. bei 22k1: R=2 F=0 R=22 F=0 R=22 F=1000 R=221 F=100 RxF=22100 und los.
Ajjjj, sorry aber wuerde praktischer mit bistabiler relais. Dann kann man einfach per batterie ansteuern. Jetzt musz mann kontinu speisen (oder bin ich da falsch ?) Ich benutze fast taglich der OS-270 von ietlabs und bin sehr zufrieden damit aber $$$ Was ich sehr praktich finde ist durchsteppen in E12/E24/E48 series um einen guten wert zu finden.
Hallo, vielen Dank für eure Antworten! Das klingt ja interessant. Ja wie Jens das beschrieben hat mit der Eingabe finde ich auch für mich am logischsten "Du merkst dir doch jetzt auch die Tasten vor dem "go". Da muss das Case/select ja nur um ein select ergänzt werden." Ich habe mal den Teil mit der Eingabe und Ausgabe auf die Relais hier kopiert: Mir ist noch nicht ganz klar was genau du mit "Merke F" meinst bzw die Idee dahinter. (PS: Ich hatte leider einen Fehler im Eingangspost. Ich kann nur ganzzahlig Widerstände auswählen: 1,2,3.. Die E-Reihen sollen dann auch folgen, wobei mir da die Implementierung klar ist wie ich das machen könnte. Leider deshalb keine bistabilen Relais weil die um ein vielfaches teurer waren. Für meinen gelegentlichen Zweck ist das so ausreichend und liegt wohl mit den ganzen Widerständen bei ca 50/60 Euro..das ist doch ein ganzes Stück weit weg von dem ietlabs Teil
1 | key_pressed = keypad.getKey(); |
2 | |
3 | switch (key_pressed) |
4 | { |
5 | case '0' ... '9': |
6 | wert = wert * 10 + (key_pressed - '0'); |
7 | printserial(); |
8 | break; |
9 | |
10 | case 'k': |
11 | //faktor = 10; ?? |
12 | printserial(); |
13 | break; |
14 | |
15 | case 'M': |
16 | //faktor = 100000; ?? |
17 | printserial(); |
18 | break; |
19 | |
20 | case '=': |
21 | shiftOut(wert); |
22 | digitalWrite(5, HIGH); /*stellt Verbindung durch*/ |
23 | printserial(); |
24 | break; |
25 | |
26 | case '*': |
27 | wert = 0; |
28 | digitalWrite(5, LOW); /*trennt Verbindung*/ |
29 | shiftOut(8388607); /*alle relais aus*/ |
30 | break; |
31 | } |
debug ausgabe:
1 | void printserial() { |
2 | Serial.print("R: "); Serial.print(wert); Serial.print(" F: "); Serial.println(faktor); |
3 | } |
:
Bearbeitet durch User
F ist der Faktor. Erstmal auf 1(R), 1000(k) oder 1000000(M) setzen und bei nachfolgenden Ziffern wieder jeweils durch 10 Teilen. Das gibt genau den Multiplikator den du brauchst, egal wo du ihn eintippst. Mit 25 Relais kannst du ja 25 Bit darstellen, also mit 1R Teilung bis 33M554432 hoch. Leider werden dir "unten" die Kontakte Probleme machen, da Übergangswiderstand, und "oben" da zuwenig Stromfluss. Aber ich glaube da kranken alle Dekaden dran, von daher egal.
:
Bearbeitet durch User
Hallo, ok danke. Das muss ich mir mal ausprobieren, damit ich eine Vorstellung davon bekomme. Ja eigentlich sind es nur 23 Relais. Eins ist dafür gedacht alles aufzutrennen und das andere schließt bei <128Ohm die restlichen Relais kurz, damit man nicht zuviele Kontaktwiderstände hat im kleineren Bereich
Patrick C. schrieb: > Ajjjj, sorry aber wuerde praktischer mit bistabiler relais. Dann kann > man einfach per batterie ansteuern. Jetzt musz mann kontinu speisen > (oder bin ich da falsch ?) > > Ich benutze fast taglich der OS-270 von ietlabs und bin sehr zufrieden > damit aber $$$ > > Was ich sehr praktich finde ist durchsteppen in E12/E24/E48 series um > einen guten wert zu finden. Einfach zu goldig: 10 - 20 Fehler im Text. Für dich sollte die Note 7 eingeführt werden.
Mart schrieb: > Einfach zu goldig: 10 - 20 Fehler im Text. Für dich sollte die Note 7 > eingeführt werden. Und welches teil war fuer dich nicht deutlich ? Grusze von Patrick der Niederlaender.
Nimm doch Tasten wie diese https://de.aliexpress.com/item/B3F-50sets-lot-Tactile-Push-Button-Switch-with-hat-Momentary-Tact-12x12x7mm-DIP-Through-Hole-4pin/32603919095.html und baue dir eine Eingabetastatur genau nach Maß. Die klaren Abdeckungen unterlegst du mit der jeweiligen Tastenbeschriftung, aus dem Drucker (entweder auf normalem Papier oder transparenter Folie gedruckt).
Jens M. schrieb: > Nee, der Weg ist schon richtig. > Man sagt (zumindest bei uns in der Fa.) 1R5, 1M5 oder 1k5. Woanders sagt man 1.5, 1.5k, 1.5M ;-) Die Verwendung der Buchstaben (R,k,M) als Dezimaltrennzeichen ist doch nur ein Zugeständnis an die schlechte Lesbarkeit beim Druck, weil ein Punkt schnell mal undeutlich ist.
Richtig. Braucht allerdings in diesem Fall eine Kommataste. Aber da es weder dein noch mein Gerät ist soll OP sich mal einen Kopp machen wie er das umsetzt. Ich würde meins so bauen wie ich es beschrieben habe. Wäre leichter zu merken, schneller zu sprechen/tippen, einfacher zu bauen. Wobei ich andersrum auch sagen muss das ich in fast 40 Jahren Elektronik bislang ohne Dekade ausgekommen bin. Mach ich was falsch?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.