watterott ;title =
Seite 5 von 5 ErsteErste ... 345
Ergebnis 41 bis 48 von 48

Thema: mindestens 64 Tasten abfragen

  1. #41
    Neuer Benutzer
    Registriert seit
    02.11.2016
    Beiträge
    48
    Zitat Zitat von Acki Beitrag anzeigen
    Aber du schriebst doch dsc schon bei 20cm leitungslänge störungen auftreten können? :-O
    Hallo Acki,

    Ja, Ja könnte.... Ist wie mit dem Verfallsdatum auf einer Salzpackung.

    Mit Leitungstreiber und 400kHz habe schon einen Bus mit 200 Meter Leitung in einer Betriebshalle bist dato ohne Störungen aufgebaut.

    Mach einfach selber deine Erfahrungen. Ein Hardware- Testaufbau ist doch schnell erstellt und kostet doch nur ein paar Euro. Ein Atmega 88 und 2x PCF8574(1 für Taster 1 für LED um Ausgang zu testen) 8 LEDs ein 100nF ein 10k und zwei 4,7k Widerstände und schon kann es los gehen.
    Wie geschrieben im Grenzbereich kann vieles mit technischen Aufbau kompensiert werden.
    Bedeutet in diesem Modelbaubereich ist die Modulbauweise Sinnvoll(sind meine Erfahrung) In der Mitte der Controller und Sternförmig kleine Platinen mit I²C ICs. Je nach bedarf auf einer 1auf der andere 5 usw.

    Nun hast du die Möglichkeit die SDA- und SCL Leitungen zum Controller so kurz wie möglich zu halten und bist die Hauptursache für Störungen los.
    Softwarehilfen bekommst du im Forum wenn nötig mit Sicherheid genug.

    Gruß der alte Fan von Bussysteme

  2. #42
    Kabelträger
    Registriert seit
    27.11.2016
    Alter
    31
    Beiträge
    21
    Hallo alle zusammen,
    Ich habe mir das noch mal durch den Kopf gehen lassen. Wäre ein einlesen der Taster und die Ansteuerung der Relais über Schieberegister sicherrer? In Bezug auf Störungen?
    zb das 74HCT151

    Gruß Acki

  3. #43
    Kabelträger
    Registriert seit
    02.11.2016
    Beiträge
    12
    Hallo Acki,

    wie wäre es, die Tasten über einen einzigen AD-Eingang auszulesen? Du willst ja immer nur eine Taste drücken. Dazu habe ich was sehr interessantes im I-net gefunden:
    Es ist sehr klein aber durch anklicken kannst Du es hoffentlich sehen:

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	matrix2.JPG 
Hits:	18 
Größe:	14,9 KB 
ID:	380

    Ich weiss nicht warum, aber als Link geht es nicht, da habe ich Dir einen Screenshot gemacht. Achtung beim Abtippen: Da ist kein Bindestrich drin!

    Ich hoffe, es hilft Dir weiter.

    Andy

  4. #44
    Kabelträger
    Registriert seit
    27.11.2016
    Alter
    31
    Beiträge
    21
    Guten abend,

    Mit den Schieberegistern stelleich mir das von der Verdrahtung her einfacher vor.
    Aber wie bekomme ich die Bits da rein geschoben. Das verstehe ich irgendwie nicht.

    Zum Beispiel möchte ich sagen wir mal bei zwei Schieberegistern die den Zustand eines Ausgangspins ändern (beim ersten den pin 3 und beim zweiten den Pin 1 auf High und der Rest auf low) und nach zwei Sekunden wieder alles auf low. Und das soll alles passieren wenn ich einen Taster betätige der an ein drittes Schieberegister an Pin 1 angeschlossen ist.
    Wäre klasse wenn ihr mir helfen könntet.

    Gruß Acki

  5. #45
    Kabelträger
    Registriert seit
    27.11.2016
    Alter
    31
    Beiträge
    21
    Guten abend,

    Oder was meint ihr?

    Gruß Acki
    Geändert von Acki (14.01.2017 um 23:33 Uhr)

  6. #46
    Platinenputzer Avatar von peterfido
    Registriert seit
    05.11.2016
    Beiträge
    41
    Hallo,

    der oben erwähnte 74HCT151 arbeitet so:

    Mit den Eingängen S0 bis S2 wird das abzufragende Bit adressiert. Diese drei kannst Du mit allen 74HCT151 S0-S2 verbinden. Dann brauchst Du pro 74HCT151 noch zwei PINs. Einmal, Enable (AVR>74HCT151) und einmal für die Antwort vom 74HCT151. So wie ich das rauslese, kann man leider die Ausgänge aller 74HCT151 nicht einfach miteinander verbinden, da die wohl nicht offen sind, wenn Enable high ist.

    Da komme ich bei 64 Eingängen auf 3 + 8x2 = 19 PINs. Lässt Du Enable immer Low, sollte es mit 11 PINs gehen. Dafür müsste der 74HCT151 ständig die Eingänge abfragen und den Ausgang aktualisieren. Ob er das macht, steht evtl. im Datenblatt, wo ich die anderen Infos auch her habe. Ansonsten ausprobieren.

    Die Abfrage selbst geht mit ständigem Pollen. Also die Adressen "durchschalten" und den jeweiligen Eingang abfragen. Das geht auch prima ohne Timer aus der Hauptschleife raus, wenn man ohne große WAITs arbeitet.

    Edit:

    Mangels Hardware ist folgender Code ungetestet. Dieser sollte bei einer Änderung der Eingänge der 74HCT151 die Bits über die UART ausgeben.
    Port C 0 bis C2 kommt an S0 bis S2 aller 74HCT151. Die Y der 74HCT151 kommen an PortB. Die ENABLES der 74HCT151 per Pulldown auf Low.

    Code:
    $regfile = "m8adef.dat"
    $crystal = 8000000                                          'interner Takt, PortB wird für die Ausgänge der 8 74HCT151 genutzt
    $hwstack = 40
    $swstack = 16
    $framesize = 32
    $baud = 9600
    
    
    Dim Eingaenge(8) As Byte
    Dim Eingaengealt(8) As Byte
    Dim Anders As Byte
    
    Dim Adresse As Byte
    Dim B As Byte
    
    Ddrc = &B00000111                                           'Adressausgabe an S0, S1 und S2 der 74HCT151
    Anders = 1
    
    Do
       Gosub Abfrage
       For B = 1 To 8
          If Eingaenge(b) <> Eingaengealt(b) Then
             Eingaengealt(b) = Eingaenge(b)
             Anders = 1
          End If
       Next
       If Anders = 1 Then
          Anders = 0
          For B = 1 To 8
             Print Bin(eingaenge(b)) ; "," ;
          Next
          Print                                                 'Neue Zeile
          Waitms 20                                             'Entprellen
       End If
    Loop
    End
    
    
    Abfrage:
       For Adresse = 0 To 7
          Portc = Adresse
          Waitus 100                                            'Zeit für die 74HCT151 zum Erkennen der neuen Adresse
          For B = 1 To 8
             Eingaenge(b).adresse = Pinb.adresse                'PortB.x bekommt je einen Y der 74HCT151.
          Next
       Next
    Return
    Lass uns wissen, falls es läuft (oder nicht läuft).

    Edit2: waitus 100 im Code eingefügt, um den 74HCT151 zeit zu lassen, die Adressänderung mitzubekommen. Bei Problemen evtl. erhöhen.
    Geändert von peterfido (15.01.2017 um 09:23 Uhr)
    Gruß Peterfido
    _____________________________________________
    Wenn das Herz involviert ist, steht die Logik außen vor.

  7. #47
    Kabelträger
    Registriert seit
    27.11.2016
    Alter
    31
    Beiträge
    21
    Hallo alle zusammen,

    Jetzt verstehe ich gar nix mehr. Was meinst du mit S0 bis S2?
    Ehrlich gesagt verstehe ich das gerade über haupt nicht
    Gruß Acki
    Geändert von Acki (15.01.2017 um 13:11 Uhr)

  8. #48
    Platinenputzer Avatar von peterfido
    Registriert seit
    05.11.2016
    Beiträge
    41
    Hallo,

    sieh Dir das Datenblatt des 74HCT151 an. Dann erkennst Du es schon.
    Gruß Peterfido
    _____________________________________________
    Wenn das Herz involviert ist, steht die Logik außen vor.

Lesezeichen

Lesezeichen

Berechtigungen

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