- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 21

Thema: Schalter an ADC0/ ADC1

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    25.07.2012
    Beiträge
    47

    Schalter an ADC0/ ADC1

    Hallo,
    kann man beim RP6v2 einen Schalter an den ADC0 bzw ADC1 Kanal anbringen?
    Wenn ja muss der schalter zwischen GND und Signal oder zwischen VDD und Signal?
    Danke im Vorraus

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.04.2008
    Beiträge
    282
    Ich weiß zwar nicht, wie es beim RP6v2 ist, aber üblicherweise werden Taster/Schalter so an einen Controller angeschlossen:
    Klicke auf die Grafik für eine größere Ansicht

Name:	Taster.gif
Hits:	11
Größe:	2,0 KB
ID:	26088

    Theoretisch haben die meisten Controller zwar auch interne Pull-Up-Widerstände, jedoch verwendet man in der Praxis üblicherweise externe hierfür. Die ADC-Eingänge können dabei üblicherweise als "normale" I/O-Pins konfiguriert werden

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    25.07.2012
    Beiträge
    47
    Ok, also würde es dann heißen das wenn ich den schalter schließe masse am PIN für das Signal anliegt? Für was muss dann noch en widerstand dazu?

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.04.2008
    Beiträge
    282
    Weil der Anschluss bei geöffnetem Schalter sonst "in der Luft hängen" würde ... sprich keinen definierten Zustand hätte. Ein paar Infos hierzu findest Du z. B. auch hier: http://www.rn-wissen.de/index.php/Pu...own_Widerstand

    Bei der gezeigten Schaltung ist es so, dass der Eingang definitiv auf HIGH ist, wenn der Taster geöffnet ist bzw. LOW, wenn der Taster gedrückt wird. Wenn Du das ganze anders herum haben willst, dann geht das auch, allerdings spricht man dann nicht von einem Pull-Up-Widerstand sondern von einem Pull-Down-Widerstand, da er den Eingang auf Masse "zieht". Üblich sind aber wie gesagt externe Pull-Up-Widerstände.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    25.07.2012
    Beiträge
    47
    Ok,
    danke schonmal für die Hilfe.
    Ich hab mir jetzt mal ein kleines Programm geschrieben in dem ich ADC0 und ADC1 auslesen kann und die werte über den RobotLoader im Terminal angezeigt werden.
    Dann habe ich mir diese Schaltung mit einem 10 Kiloohm widerstand nachgebaut.
    Eine sache die ich jetzt noch festgestellt hab:
    wenn ich diese Schaltung an ADC1 anschließe änder sich auch nur hier der wert! Wenn ich jedoch diese Schaltung an ADC0 anschließe ändert sich der wert bei ADC1 und bei ADC0, es wird jeweils der gleiche wert angezeigt.
    Ist das normal?

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.04.2008
    Beiträge
    282
    eigentlich nicht. Du solltest auch versuchen den AD-Wandler abzuschalten und die Pins als ganz normale Digital-I/O-Anschlüsse zu verwenden. Wenn Du vollen Zugriff auf den Controller hast, ist das möglich. Leider kenne ich den RP6v2 aber wie gesagt nicht und kann Dir deshalb auch nicht sagen, ob und wenn ja wie das geht. Da müssen die RP6v2-Experten ran

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.653
    ... kann man beim RP6v2 einen Schalter an den ADC0 bzw ADC1 Kanal anbringen ...
    Bei den ATmegas kann man (fast) alle I/O-Pins für als Ein- oder Ausgang konfigurieren, wie von redround geschrieben. Damit sind Schalterabfragen ohne Problem möglich. Wenn nötig oder wünschenswert kann man praktischerweise an einem ADC-Pin auch mehrere Taster gleichzeitig anbringen. Dazu wird eine Widerstandskombination verwendet, sodass abhängig vom aktivierten Taster/Schalter eine jeweis unterschiedliche Spannung am ADC ansteht.

    Zitat Zitat von ATmega32-32L-Datenblatt 2503Q, Seite 4
    ...
    Port A also serves as an 8-bit bi-directional I/O port, if the A/D Converter is not used. Port pins can provide internal pull-up resistors (selected for each bit). ...

    Zitat Zitat von redround Beitrag anzeigen
    ... üblicherweise ... Taster/Schalter so an einen Controller angeschlossen ... Theoretisch ... interne Pull-Up-Widerstände, jedoch verwendet man in der Praxis üblicherweise externe hierfür ...
    Also die von mir bevorzugten AVR-8-Bit-Controller (die im RP6v2 auch eingesetzt werden) haben interne Pull-Ups nicht theoretisch sondern ganz konkret vorhanden und benutzbar! Das Datenblatt (für meinen mega1284, auch für den mega32 und andere) spezifiziert sie zwischen 20 kΩ und 50 kΩ. Deshalb verstehe ich nicht, dass Du von einem üblichen Anschlußbild mit externen Pull-Up-Widerständen schreibst. So einen Aufwand hatte ich noch nie gemacht. Wo ist das üblich?
    Ciao sagt der JoeamBerg

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.04.2008
    Beiträge
    282
    Zitat Zitat von oberallgeier Beitrag anzeigen
    Das Datenblatt (für meinen mega1284, auch für den mega32 und andere) spezifiziert sie zwischen 20 kΩ und 50 kΩ. Deshalb verstehe ich nicht, dass Du von einem üblichen Anschlußbild mit externen Pull-Up-Widerständen schreibst. So einen Aufwand hatte ich noch nie gemacht. Wo ist das üblich?
    Das Problem ist wohl, dass die Störfestigkeit mit steigendem Widerstand abnimmt. So wird die Schaltung z. B. empfindlicher gegen sog. "Kriechstrecken", die zum Beispiel bei Verschmutzungen der Schaltkontakte auftreten können, je größer der Widerstand ist. Auch sog. "parasitäre Leitungskapazitäten" - besonders bei langen Leitungen - sind eher ein Problem je höher der Pullup-Widerstand ist. Deshalb haben sich in der Praxis wohl Werte zwischen 5 und 10 kOhm für die Widerstände als "sichere" Größen erwiesen ... und da liegen die internen Widerstände zum Teil einfach deutlich drüber (abhängig vom Controller-Typ bis zu 100k)

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    25.07.2012
    Beiträge
    47
    So hab hier mal den Code den ich zum auslesen der werte geschrieben habe:
    #include "RP6RobotBaseLib.h"

    int main(void)
    {
    initRobotBase();
    startStopwatch1();

    while(true)
    {
    if(getStopwatch1() > 300)
    {
    writeString_P("\nADC Akku: ");
    writeInteger(adcBat, DEC);
    writeString_P("\nADC ADC0 ");
    writeInteger(adc0, DEC);
    writeString_P("\nADC ADC1: ");
    writeInteger(adc1, DEC);
    writeChar('\n');
    setStopwatch1(0);
    }
    task_ADC();
    }
    return 0;
    }

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Hallo,

    ich antworte mal hier auf Deine PN.

    Nein es ist nicht normal dass sich die zwei ADCs identisch ändern.
    Bist Du ganz sicher, dass die Hardware 100% korrekt aufgebaut wurde?
    Keine Lötbrücken, keine schlechten Lötstellen, keine Wackelkontakte, keine gebrochenen Kabel usw.
    Taster richtig angeschlossen (bei 3 poligen umschaltern durchaus wichtig)?
    Auch wenn man glaubt das alles richtig ist, es ist oft doch nicht so

    Hast Du ein Multimeter?
    Falls ja, miss mal die Spannung an beiden Pins jeweils mit und ohne gedrücktem Taster und bei
    nur an ADC1 / ADC0 angeschlossenem Taster.

    Hast Du die I/O Port Konfiguration geändert?
    Hast Du es mal mit dem internen Pullup probiert?

    Weiterhin wäre es besser die Pins als GPIO zu verwenden und nicht den ADC Wert zu nehmen.


    MfG,
    SlyD

Ähnliche Themen

  1. adc0, adc1, scl
    Von Morpheus1997 im Forum Robby RP6
    Antworten: 3
    Letzter Beitrag: 22.07.2011, 10:31
  2. Poti an ADC0/ADC1
    Von neo3000 im Forum Robby RP6
    Antworten: 4
    Letzter Beitrag: 24.10.2010, 01:09
  3. A/D Wandler freerun ADC0 und ADC1 ohne Interrupt
    Von guenter1604 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 14.12.2009, 12:01
  4. ADC0 funktioniert, ADC1 bis ADC5 nicht (Atmega8)
    Von DEAF BOY im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 06.03.2007, 15:26
  5. Strommessung (Differenz) über ADC0 und ADC1
    Von RHS im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 9
    Letzter Beitrag: 19.02.2007, 18:55

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test