-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 21

Thema: Schalter an ADC0/ ADC1

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    25.07.2012
    Beiträge
    46

    Schalter an ADC0/ ADC1

    Anzeige

    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
    279
    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
    46
    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
    279
    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
    46
    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
    279
    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
    7.554
    ... 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
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    "Ich hab mir jetzt mal ein kleines Programm geschrieben" ...dass du uns vielleicht auch zeigen solltest.

    "Ist das normal? " Nein, denn ADC0 und ADC1 sind nicht verbunden.

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    19.04.2008
    Beiträge
    279
    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)

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    25.07.2012
    Beiträge
    46
    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;
    }

Seite 1 von 3 123 LetzteLetzte

Ähnliche Themen

  1. adc0, adc1, scl
    Von Morpheus1997 im Forum Robby RP6
    Antworten: 3
    Letzter Beitrag: 22.07.2011, 11:31
  2. Poti an ADC0/ADC1
    Von neo3000 im Forum Robby RP6
    Antworten: 4
    Letzter Beitrag: 24.10.2010, 02: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, 13: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, 16:26
  5. Strommessung (Differenz) über ADC0 und ADC1
    Von RHS im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 9
    Letzter Beitrag: 19.02.2007, 19:55

Berechtigungen

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