SchemaTheek
 
Home Nieuws Forum Schema's Artikelen Magazine Downloads Links Shops Zoeken
 
Controle Paneel
Gebruikersnaam
Wachtwoord
  Onthoud mij
» Wachtwoord?
» Registreren
Site info
» Het Team
» Contact
» FAQ
» Leden
» Upload Archief
Stats
Totaal online: 18
18 gasten
0 leden:
Forum > Digitaal > Probleem met druktoetsen op B-poorten.
pascalbianca
Lid
Berichten: 1394
Gepost op maandag 29 Augustus 2011 21:25:36 QuoteWijzig

Ik heb als test de volgende code in een lus staan.:


Code
 If S4 = 1 Then
   High buzzer     
  ElseIf S4 = 0 Then
  Low buzzer
  EndIf
    If S5 = 1 Then
   High buzzer     
  ElseIf S5 = 0 Then
  Low buzzer
  EndIf
  If S6 = 1 Then
   High buzzer    
  ElseIf S6 = 0 Then
  Low buzzer
  EndIf



Nu is reageerd alleen de toets die als laatste steeds staat, in dit geval S6, maar niet S5 en S4.
Zou ik deze weghalen dan reageerd S5 wel, maar niet S4.

Wat doe ik fout of vergeet ik iets?

http://pascalbianca.blogspot.nl/
Stynus
Admin
Berichten: 2773
Gepost op maandag 29 Augustus 2011 21:28:10 QuoteWijzig

Waarom dubbelle if's

Code
 If S4 = 1 Then
   High buzzer     
  ElseIf S4 = 0 Then
  Low buzzer
  EndIf 


Kan vervangen worden door

Code
 If S4 = 1 Then
   High buzzer     
  Else
  Low buzzer
  EndIf 


Scheelt weer code in de pic.

Verder is het logisch dat alleen de laatste stand blijft. Je overschrijft hem namelijk bij elke if then.

Tipje:
Maak zoiets in visual basic, dan kan je met de debugger bekijken wat er mis gaat. Met alleen if then dingen kan dat.


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
pascalbianca
Lid
Berichten: 1394
Gepost op dinsdag 30 Augustus 2011 16:33:19 QuoteWijzig

Ik heb nu alles op de b-poorten aan de praat.
Nu heb ik nog enkel problemen met 2 druktoetsen die op 2 d-poorten zit namelijk D6 en D7.

Ik heb via TRISD = %11000000 poort 6 en 7 ingang gemaakt.
Maar ze reageren niet als ik op de knop druk , ben ik iets over het hoofd aan het zien?


http://pascalbianca.blogspot.nl/
Stynus
Admin
Berichten: 2773
Gepost op dinsdag 30 Augustus 2011 17:35:22 QuoteWijzig

Post je code eens.


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
pascalbianca
Lid
Berichten: 1394
Gepost op dinsdag 30 Augustus 2011 19:19:30 QuoteWijzig

Let wel even niet op het stukje met de if structuur, daar komt nog een aanpassing op.


Code
Device 16F877A ' device name  

'Config CP_OFF , CPD_OFF , WDT_OFF , HS_OSC , PWRTE_ON , BODEN_OFF , LVP_OFF , DEBUG_OFF   
XTAL 20  
ALL_DIGITAL TRUE                ;Alle ingangen digitaal  

;        76543210           <<<Een hulpregeltje
'PORTB = %00000000 ;Alle niveaus van PORTB laag, behalve PORTB.2, deze is als voorbeeld hoog 
TRISB = %11111111             ;Van PORTB is alles ingang
TRISD = %00000000 'was TRISd = %11000000             ;Van PORTD is D7 en D6 ingang
PORTB_PULLUPS On ; weerstanden van b-poorten activeren  

  
 'goto test2:
 
Symbol AAN  = 1               ;Schakelaar aan = laag (1)
Symbol UIT  = 0               ;Schakelaar uit = hoog (0)

Symbol Buzzer = PORTD.2         ;Poort A.0 heeft nu de naam LED1
 
Symbol S1   = PORTB.0         ;Poort B.0 heeft nu de naam S1
Symbol S2   = PORTB.1         ;Poort B.1 heeft nu de naam S2
Symbol S3   = PORTB.2         ;Poort B.2 heeft nu de naam S3
Symbol S4   = PORTB.3         ;Poort B.3 heeft nu de naam S4
Symbol S5   = PORTB.4         ;Poort B.4 heeft nu de naam S5
Symbol S6   = PORTB.5         ;Poort B.5 heeft nu de naam S6
Symbol S7   = PORTB.6         ;Poort B.6 heeft nu de naam S7
Symbol S8   = PORTB.7         ;Poort B.7 heeft nu de naam S8
Symbol S9   = PORTD.6         ;Poort D.6 heeft nu de naam S9
Symbol S10   = PORTD.7         ;Poort D.7 heeft nu de naam S10
Clear                         ;Wis alle RAM geheugen

;Hoofdprogramma
While 1 = 1             ;Oneindige lus
 '****************werkt******************            
  If S1 = UIT Then  
    Low Buzzer  
  Else
    High Buzzer
        If S2 = UIT Then  
            Low Buzzer
        Else
            High Buzzer
        If S3 = UIT Then  
            Low Buzzer
        Else
            High Buzzer 
        If S4 = UIT Then  
            Low Buzzer
        Else
            High Buzzer 
        If S5 = UIT Then  
            Low Buzzer
        Else
            High Buzzer 
        If S6 = UIT Then  
            Low Buzzer
        Else
            High Buzzer 
        If S7 = UIT Then  
            Low Buzzer
        Else
            High Buzzer 
        If S8 = UIT Then  
            Low Buzzer
        Else
            High Buzzer 
        If S9 = AAN Then  
            Low Buzzer
        Else
            High Buzzer 
        If S10 = AAN Then  
            Low Buzzer
        Else
            High Buzzer 
        EndIf 
    EndIf
    EndIf
  EndIf
 EndIf
 EndIf
 EndIf
 EndIf  
 EndIf 
 
  
  GoSub Pic_Led_InBedrijf_Indicatie 

 Wend


 
[Bericht gewijzigd door pascalbianca op Dinsdag 30 Augustus 2011 19:20:06]


http://pascalbianca.blogspot.nl/
pascalbianca
Lid
Berichten: 1394
Gepost op dinsdag 30 Augustus 2011 20:44:58 QuoteWijzig

Moet op alles buiten de b-poorten geen pullup weerstand te zitten?
zo ja hoeveel moet die weerstand alweer zijn 10 ohm?
En moet eventueel aan bovenstaande code voor die d-poorten nog iets aangepast worden?


http://pascalbianca.blogspot.nl/
Stynus
Admin
Berichten: 2773
Gepost op dinsdag 30 Augustus 2011 21:19:13 QuoteWijzig

Daar moeten idd pull-up weerstanden bij gebruikt worden. Was me in je vorige post nog niet opgevallen dat je het over portD had.
10 Ohm is wat weinig, bij 5V gaat er dan 500mA lopen. Best gebruik je iets van een 1K...10K.


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
pascalbianca
Lid
Berichten: 1394
Gepost op woensdag 31 Augustus 2011 11:32:47 QuoteWijzig

Ik heb nu op die 2 knoppen 1K staan.
De trisregoster van de D-poorten heb ik zo staan

Code
TRISD = %11000000



Nu reageerd hij niet als ik op een van de knoppen druk, maar als ik het ijzer gedeelte aanraak wat boven die print drukknoppen zit krijg ik wel een piep signaal.
Wat kan er mis zijn?

Wat ook vreemd is.
Ik gebruik een flatkabel om die drukknoppen te verbinden op mijn hoofdprint.
Als ik die flatkabel aanraak waar die 2 knoppen lopen piept hij ook.
De aarde en alles zit goed.

Wat houd dat precies in, zwevende poort? hoe los ik dat op?
Als het een zwevende poort is, zou normaal toch het programma even moeten stoppen, maar als ik naar de led kijk (deze heb ik erop gezet om te zien of de IC werkt) blijft deze mooi door knipperen.

Nu heb ik bij picbasic.nl een schema gezien waar 100nf tussen de lijn van de drukknop en de ground zit, moet die soms ertussen?
 
[Bericht gewijzigd door pascalbianca op Woensdag 31 Augustus 2011 15:07:15]


http://pascalbianca.blogspot.nl/
Stynus
Admin
Berichten: 2773
Gepost op woensdag 31 Augustus 2011 17:30:58 QuoteWijzig

Teken eens hoe je de weerstanden en drukknop hebt aangesloten.

Die 100nF is niet altijd nodig. Is voor te ontdenderen.


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
pascalbianca
Lid
Berichten: 1394
Gepost op woensdag 31 Augustus 2011 19:33:25 QuoteWijzig

Helaas had ik geen goeie symbol voor die drukknop maar ik denk dat het voor zich spreekt.



http://pascalbianca.blogspot.nl/
reddevil
Lid
Berichten: 1221
Gepost op woensdag 31 Augustus 2011 19:53:37 QuoteWijzig

Helaas, niet goed. Zo is je ingang nog altijd zwevend. Je moet de weerstand aan een kant aan de poort van je pic hangen en de andere kant aan de massa. Dan hang je een kant van de schakelaar ook aan de poort van je pic en de andere kant aan de +5V.

Even schema bijgevoegd.


 
[Bericht gewijzigd door reddevil op Woensdag 31 Augustus 2011 21:46:57]


Veel te weinig tijd voor mijn projecten of heb ik er soms te veel?
pascalbianca
Lid
Berichten: 1394
Gepost op woensdag 31 Augustus 2011 22:42:45 QuoteWijzig

thx zal het testen morgen.
Ik ga ervan uit dat dit alleen nodig is wanneer je buiten de b-poorten gaat werken.


http://pascalbianca.blogspot.nl/
Stynus
Admin
Berichten: 2773
Gepost op woensdag 31 Augustus 2011 22:49:29 QuoteWijzig

Als je het aansluit zoals in het schema van reddevil werkt het wel omgekeerd als op je portb. Als dat uitmaakt moet je de weerstand en drukknop van plaats verwisselen.


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
pascalbianca
Lid
Berichten: 1394
Gepost op donderdag 1 September 2011 11:25:22 QuoteWijzig

thx het werk nu zonder problemen.


http://pascalbianca.blogspot.nl/

Active Topics

» Subaru Outback 2016
» Stofafzuiging
» Aanpassingen aanbouwde...
» Audi
» Show je mini projecten
» Puls schkelaar
» Draadknipper
» Intercom
» buske (Peugeot Boxer 2...
» Voeding 24V 3A Stynus

» Meer actieve topics

Advertenties

ElektronicaStynus

© 2004-2019 SchemaTheek
Laadtijd: 1.05568 sec.