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: 23
23 gasten
0 leden:
Forum > Digitaal > 16F628A aansluiten op een 74HC595?
pascalbianca
Lid
Berichten: 1394
Gepost op zaterdag 21 November 2009 16:27:43 QuoteWijzig

Weet iemand mij te vertellen hoe je een 74HC595 aansluit op een pic 16F628A en hoe de aansluiting moet zitten om zoeen 74HC595 shuifregister te programmeren?

http://pascalbianca.blogspot.nl/
Stynus
Admin
Berichten: 2776
Gepost op zaterdag 21 November 2009 17:05:19 QuoteWijzig

Een voorbeeld schema: http://www.elektronicastynus.be/Projecten/Werplaats_mods/Nixie_klok/Nixie_schema.png

De 3 lijnen tussen de pic en de 74hc595 mogen bij de pic op elke pin zolang die maar als uitgang kan. In je code geef je dan aan waar die opzit.

Code is op deze pagina te vinden: http://www.elektronicastynus.be/Projecten/Werplaats_mods/Nixie_klok/index.php


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
pascalbianca
Lid
Berichten: 1394
Gepost op zondag 22 November 2009 11:50:28 QuoteWijzig

Ik ben er nu mee bezig om hem op test printplaat te maken.
Ik ga gebruik maken van een 16f628a en 5 * 74HC595.

Maar die 74HC595 zijn die al voor geprogrammeerd of moet dat nog gebeuren?
Want als ik zo kijk naar de link met dat schema, zie ik dat er geen programmeer lijnen zijn naar die 74HC595's.

Op de programmering kom ik wel later terug, eerst mijn printje in orde maken.


http://pascalbianca.blogspot.nl/
Stynus
Admin
Berichten: 2776
Gepost op zondag 22 November 2009 12:17:14 QuoteWijzig

Die 74HC595 kan je niet programmeren. Dat is een gewoon cmos ic met de functie van een schuifregister met latch. Je klokt je data erin en je zet die naar de latch voor aan de uitgang te laten verschijnen.


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
Pyro-Brad
Lid
Berichten: 253
Gepost op zondag 22 November 2009 12:19:14 QuoteWijzig

een Tip: niet te hard van stapel lopen! Ik merk aan de dingen die je typt dat je aardig enthousiast bent.
maar helaas nog niet zoveel kennis bezit. Daarom moet je nu niet te veel dingen gaan doen.

Dat heb ik ook in het begin gehad Stynus kan het je wel vertellen maar nu houd ik me ook een beetje rustig en werk ik gewoon aan 1 moeilijk project en 1 makkelijk projecten.


nu nog het nubke van schematheek :p
pascalbianca
Lid
Berichten: 1394
Gepost op zondag 22 November 2009 20:07:11 QuoteWijzig

Stynus bedankt voor de uitleg.

Pyro-Brad dit proefje heb ik gevonden en afgedrukt, dit zou opdrachtje om 1 74HC595 te voorzien van 5 ledjes en die 5 ledjes appart aan te sturen samen met een 16f628a.

In mijn vorige vraag had ik schijnbaar 5* getypt maar moest 1* zijn.
Ik heb alles netjes aan een gesloten.
Nu probeer ik 1 ledje te laten branden maar op een of andere manier branden er 5. is dit standaard dat ze allemaal branden?

Kun je jullie mij mischien 1 klein voorbeeldje geven om 1 ledje te laten branden, dan kan ik de rest zelf proberen? want ik nergens een voorbeeldje vinden wat ik kan testen.


http://pascalbianca.blogspot.nl/
reddevil
Lid
Berichten: 1224
Gepost op zondag 22 November 2009 20:22:23 QuoteWijzig

Pyro - Brad bedoeld maar dat je alles stap voor stap moet doen. Dus eerst maar eens een ledje laten pinken. Het klinkt stom maar je moet eerst de basis onder de knie hebben om aan de rest te beginnen. De cursus van pic - basic.nl is alvast een goede start. Een voorbeeld voor dat schuifregister heb ik niet, ik heb er zelf nog niet mee gewerkt maar ik denk dat stynus dat ergens wel eens gebruikt heeft. Veel plezier nog.


Veel te weinig tijd voor mijn projecten of heb ik er soms te veel?
Stynus
Admin
Berichten: 2776
Gepost op dinsdag 24 November 2009 19:56:26 QuoteWijzig

Ik heb een mail gehad van pascalbianca die ik beter hier kan beantwoorden vind ik.

Quote
Hoi Stijn,

Ik heb een vraagje en ik hoop dat je mij ,al is het een klein beetje, op weg kan helpen. Ik heb zoals je op het forum wellicht gelezen heb 1* pic16f628a en 1* een 74hc595 aan elkaar hangen.
Nu heb ik voor te test een programma geschreven om de ledjes te sturen op die 74hc595. Alleen wil ik weten welke methode enigszins beter is.De 2 methodes heb ik in test1 en test 2 geplaatst.

Ik had jou programma ook geprobeerd en die werkt, alleen niet veel ervan is voor mij duidelijk. Nu heb ik gezocht op internet en hiermee getest.Is het normaal dat de leds eerst gaan branden en als je ze aanstuurd, uit gaan wat je insteld? Want het werkt wel onderstaande regels alleen de ledjes gaan uit ipv aan. Ik heb 5 ledjes op poort QB t/m QF gehangen.

Hier is mijn code (het meeste staat als tekst vanwege het testen wat ik ben aan het doen.).

Code:
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : PMHA Schuffelers *
'* Notice : Copyright (c) 2009 door PMHA Schuffelers *
'* : All Rights Reserved *
'* Date : 24-11-2009 *
'* Version : 1.0 *
'* Notes : test serial 74HC595 *
'* : with 5 LEDs For Output *
'****************************************************************
Device 16F628A
Config INTRC_OSC_NOCLKOUT, WDT_off, PWRTE_off, LVP_off, MCLRE_on
ALL_DIGITAL TRUE
PORTB_PULLUPS = On


Symbol klok = PORTA.1
Symbol ZetVast = PORTA.0
Symbol Data_Pin = PORTA.2
Clear

'test1
;SHOut DTA,Clock,msbfirst,[2] 'led 1 uit
;SHOut DTA,Clock,msbfirst,[4] 'led 2 uit
;SHOut DTA,Clock,msbfirst,[7] 'led 1 & 2 uit
;SHOut DTA,Clock,msbfirst,[8] 'led 3 uit
;SHOut DTA,Clock,msbfirst,[10] 'led 1 & 3 uit
;SHOut DTA,Clock,msbfirst,[12] 'led 2 & 3 uit
;SHOut DTA,Clock,msbfirst,[14] 'led 1 & 2 & 3 uit
;SHOut DTA,Clock,msbfirst,[16] 'led 4 uit
;SHOut DTA,Clock,msbfirst,[18] 'led 1 & 4 uit
;SHOut DTA,Clock,msbfirst,[20] 'led 2 & 4 uit
;SHOut DTA,Clock,msbfirst,[22] 'led 1 & 2 & 4 uit
;SHOut DTA,Clock,msbfirst,[24] 'led 3 & 4 uit
;SHOut DTA,Clock,msbfirst,[26] 'led 1 & 3 & 4 uit
;SHOut DTA,Clock,msbfirst,[28] 'led 2 & 3 & 4 uit
;SHOut DTA,Clock,msbfirst,[30] 'led 1 & 2 & 3 & 4 uit
;SHOut DTA,Clock,msbfirst,[32] 'led 5 uit
;SHOut DTA,Clock,msbfirst,[34] 'led 1 & 5 uit
;SHOut DTA,Clock,msbfirst,[36] 'led 2 & 5 uit
;SHOut DTA,Clock,msbfirst,[38] 'led 1 & 2 & 5 uit
;SHOut DTA,Clock,msbfirst,[40] 'led 2 & 5 uit
;SHOut DTA,Clock,msbfirst,[42] 'led 1 & 3 & 5 uit
;SHOut DTA,Clock,msbfirst,[44] 'led 2 & 3 & 5 uit
;SHOut DTA,Clock,msbfirst,[46] 'led 1 & 2 & 3 & 5 uit
;SHOut DTA,Clock,msbfirst,[48] 'led 4 & 5 uit
;SHOut DTA,Clock,msbfirst,[50] 'led 1 & 4 & 5 uit
;SHOut DTA,Clock,msbfirst,[52] 'led 2 & 4 & 5 uit
;SHOut DTA,Clock,msbfirst,[54] 'led 1 & 2 & 4 & 5 uit
;SHOut DTA,Clock,msbfirst,[56] 'led 2 & 4 & 5 uit
;SHOut DTA,Clock,msbfirst,[58] 'led 1 & 3 & 4 & 5 uit
;SHOut DTA,Clock,msbfirst,[60] 'led 2 & 3 & 4 & 5 uit
;SHOut Data_Pin, klok,msbfirst,[62] 'alle leds uit

'test2
SHOut Data_Pin, klok,msbfirst,[%000000108]
PulsOut ZetVast,2
DelayMS 1000
SHOut Data_Pin, klok,msbfirst,[%000001008]
PulsOut ZetVast,2
DelayMS 1000
End



De eerste methode lijkt me nooit te gaan werken. Die gaat zelfs compile errors geven. De tweede ziet er goed uit.

Wat is er niet duidelijk aan mijn programma?

Code

      SHOut Data_Pin, klok, msbfirst, [Seconden  8]   
        High ZetVast
        DelayUS 20
        Low ZetVast


Eerst de data die in de byte seconden doorsturen. dan de zetvast pin even hoog en terug laag maken.

De leds gaan bij het aanzetten idd allemaal branden. Je moet dan zelf even alles laag maken.

Maar als je leds uitgaan bij een 1 te sturen vermoed ik dat je leds tussen 5V en uitgang hangen. Denk maar eens goed na hoe het dan komt .


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
pascalbianca
Lid
Berichten: 1394
Gepost op dinsdag 24 November 2009 21:04:15 QuoteWijzig

Hallo Stynus,

Bedankt voor je antwoord.
Ik had de eerste methode gebruikt omdat ik ergens via google dit was tegen gekomen.
Dit werkte als een trein , net als de tweede code.
Zij legde uit dat ,zoals ik bij de eerste code gebruik maak, veel typ werk zou schelen, tegenover de tweede code.
Zo was het ook makkelijk om, als je 2 van die schuif registers achter elkaar hebt staan dat je dan veel korter werken zoals bv. onderstaande code:

Code
SHOut DTA,Clock,msbfirst,[60,34] 'led 2 & 3 & 4 & 5 uit van 2de 75ch595 en van de 1ste 75ch595 led 1 en 5 uit.



Zo staat dus als volgt: SHOut DTA,Clock,msbfirst,[...,2de chip,1ste chip]
Die nummers zouden in picbasic staan voor een binair nummer.
Dus als je bv. zou typen %00000000 komt dit overeen met nummer 62. (tenminste uit het hoofd als %00000000 voor alles uit staat)
Tevens zou automatisch de high en de low in verwerkt zijn.

Dit snapte ik vrij rap en kon hier ook vrij snel mee over de voet raken.
Tot op heden heb ik ook geen errors gehad, mischien voor de ervaren gebruikers toch een poging waard dit eventueel verder te onderzoeken?

Ik ga morgen toch opnieuw jouw code eens proberen, maar de code in de eerste test werkte perfect.
 
[Bericht gewijzigd door pascalbianca op Dinsdag 24 November 2009 21:17:20]


http://pascalbianca.blogspot.nl/
Stynus
Admin
Berichten: 2776
Gepost op dinsdag 24 November 2009 21:35:42 QuoteWijzig


Quote

Zo was het ook makkelijk om, als je 2 van die schuif registers achter elkaar hebt staan dat je dan veel korter werken zoals bv. onderstaande code:
SHOut DTA,Clock,msbfirst,[60,34] 'led 2 & 3 & 4 & 5 uit van 2de 75ch595 en van de 1ste 75ch595 led 1 en 5 uit.

Zo staat dus als volgt: SHOut DTA,Clock,msbfirst,...,2de chip,1ste chip


De reden dat ik in mijn code alles apart heb is omdat dat shout command niet in een keer genoeg bits kan doorsturen voor 4 ic's. En zo is het ook meteen overzichtelijker vind ik.


Quote
pascalbianca schreef:
Hallo Stynus,
Die nummers zouden in picbasic staan voor een binair nummer.
Dus als je bv. zou typen %00000000 komt dit overeen met nummer 62. (tenminste uit het hoofd als %00000000 voor alles uit staat)


%00000000 is 0 en geen 62. Zoek maar eens op hoe binair tellen werkt.
62 = %00111110


Quote
pascalbianca schreef:
Tevens zou automatisch de high en de low in verwerkt zijn.


Nope, dat doe je daar met die pulsout. Wat op zich wel slim gevonden is om het daarmee te doen.


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be
pascalbianca
Lid
Berichten: 1394
Gepost op dinsdag 24 November 2009 22:25:31 QuoteWijzig

Ik weet inderdaad hoe binair tellen werkt, maar uit de test hier werkt het wel zo ben ze namelijk stuk voor stuk afgelopen, of ik moet de + en ground verkeerd om hebben, maar staan zoals het schema wat je had gelinkt.

Zal toch morgen nogmaals eens nakijken of alles klopt want bij 00000000 , dus 0 branden alle ledjes, dus zou eigenlijk iets niet moeten kloppen.
Laat morgen iets weten of ik een fout vind op de print.


http://pascalbianca.blogspot.nl/
Stynus
Admin
Berichten: 2776
Gepost op dinsdag 24 November 2009 22:54:48 QuoteWijzig

Is niet fout als bij 0 alle leds branden. Is gewoon een beetje verwarrend. Beter kan je de leds tussen de uitgang en de massa hangen. Dan is een 1 aan en een 0 uit. 255 is dan alles aan.


Met vriendelijke groet, Stynus ||| www.elektronicastynus.be

Active Topics

» Inrichting laadruimte ...
» schema HK audio pro 21...
» Stroom verdeelbox 230V...
» Subaru Outback 2016
» Stofafzuiging
» Aanpassingen aanbouwde...
» Audi
» Show je mini projecten
» Puls schkelaar
» Draadknipper

» Meer actieve topics

Advertenties

ElektronicaStynus

© 2004-2019 SchemaTheek
Laadtijd: 0.05717 sec.