Nummermelder

'Nummermelder' geeft op een (2x16) LCD het telefoonnummer weer van degene die je opbelt al voordat je opgenomen hebt.

Bij opstarten volgt eerst een paar seconden het versienummer in het display.
Meteen na het programmeren van de PIC staat het programma in TEST-mode.
Dit is te herkennen aan TEST, dat voortdurend rechtsonder in het LC-Display blijft staan.
(Uitschakelen zie tekst)
Nadat er spanning op de PIC wordt gezet na een stroomuitval, wordt het aantal aanwezige nummers getoond en brandt de 'nieuwe nummers' LED als deze ook aan stond voordat de stroom uitviel.
Waren er geen nieuwe nummers aanwezig dan blijft de LED uit en wordt dit gemeld in het display.
Als er helemaal geen nummers aanwezig zijn staat er 'Geen nummers' op het display.
Bij een oproep is meteen het telefoonnummer van de beller te zien, deze blijft staan totdat er een ander nieuw telefoonnummer ontvangen wordt OF als de toets bedient wordt.
Met de toets kan door de telefoonnummers 'gebladerd' worden.
Op de tweede LCD regel is te zien hoeveel telefoonnummers het geheugen bevat.
Een (op)nieuw ontvangen telefoonnummer wordt in het display aangeduid met *N*, die verdwijnt als dat telefoonnummer bekeken is.
Max.12 10-cijferige telefoonnummers kunnen er in de EEPROM van de PIC worden opgeslagen.
Is dit geheugen vol dan wordt dit op het display vermeld en knippert het backlight en LED.
Er kunnen nu nog steeds nieuwe nummers op het display verschijnen, alleen worden deze niet meer in het geheugen opgeslagen.
Als de toets langer dan 2 sec. wordt vastgehouden volgt de vraag of alle telefoonnummers moeten worden gewist.
Voor bevestiging moet er nogmaals op de toets worden gedrukt, wordt echter langer dan 2 seconden gewacht, dan valt de nummermelder weer terug in zijn originele stand.
(Is echter een nieuw ontvangen nummer nog niet bekeken, dan kan er niet gewist worden.)
Het geheugen is weer helemaal leeg.
TEST-mode is ook in te schakelen door bij het inschakelen van de spanning de toets ingedrukt te houden.

De LED gaat branden bij nieuw ontvangen nummer(s) en gaat pas uit als allen bekeken zijn.
Deze LED knippert eventjes snel als een zojuist ontvangen nummer al in het geheugen aanwezig is.
Bij een oproep of een druk op de toets wordt de backlight van de LCD voor 30 seconden aangezet.

Testmode
Meteen na het programmeren van de PIC staat het programma in TEST-mode.
Dit is te herkennen aan TEST, rechtsonder in het LC-Display.
In TEST-mode werkt de schakeling normaal, maar is de schakeling ook te testen:
Druk op een parallel aangesloten telefoon eerst op toets '*' (simuleert: nieuw nummer), dan binnen een seconde (snel) een nummer intoetsen en besluit met telefoontoets '#'.
Wordt er geen '#' gegeven, dan doet de PIC het zelf na een seconde (Time-out).
TEST-mode is ook in te schakelen door bij het inschakelen van de spanning de toets ingedrukt te houden.
Door de spanning een paar seconden van de schakeling te halen en opnieuw in te schakelen staat het programma niet meer in TEST-mode (De toetsen '*' en '#' werken dan niet meer).

De PIC zelf heeft geen kristal nodig, hij loopt op de inwendige oscillator.
Tijd + datum is een toekomstige uitbreiding (Poorten A.6 en A.7 zijn hiervoor gereserveerd)
Als een HD44780 2x16 LC-Display voorhanden is, hoeft de schakeling niet veel te kosten.

Het werkt natuurlijk alleen als de telefoonmaatschappij (KPN) de nummers doorgeeft.
Deze nummermelder werkt volgens het DTMF protocol, zoals KPN.
Nummermelding via de kabel werkt echter met het FSK protocol, hiermee is deze nummermelder dus niet bruikbaar.


EEPROM adres 0 bevat de adres teller van de EPROM zelf.
EEPROM adres 1 bevat de teller van het aantal telefoonnummers + die van een nieuw telnr.
EEPROM adres 2 houdt bij of de 'nieuwe nummers' LED aan of uit is (ivm. stroomuitval)
EEPROM adres 3 en verder, bevatten de telefoonnummers, elke LOW-NIB van een BYTE bevatten 1 cijfer van een telefoonnummer.
De HIGH-NIB van de BYTE van elk eerste cijfer van een telefoonnummer bevat het volgnummer van dat telefoonnummer.
Een bit in de HIGH-NIB van de BYTE van elk tweede cijfer onthoudt of het nummer al bekeken is of niet.
Een ontvangen telefoonnummer begint met een 'D' (0000=0), dit om te voorkomen dat de nummers die modem of huistelefoon tijdens bellen geven op de lijn op het display komen.
Een ontvangen telefoonnummer wordt voor compleet gezien als de laatst ontvangen waarde een 'C' (1111=15) betreft (standaard) of als er een time-out is (TimeOutTijd).

Componenten:
PIC 16F628A
IC MT8870 of CM8870
Kristal 3.579545MHz
LCD HD44780 LC-Display 2x16 (evt. met backlight)
LED Eigen keus
Transistor NPN transistor (bv. BC547)
VDR S07K130 (130V)
Weerstand 1k + 10k + 33k + 39k + 68k + 3x100k + 270k
Condensator 2x10n + 3x100n + 100µF(elco)
Toets Puls maakcontact
Snoer 2-aderig voor telefoonlijn

 

Download NRMELDER.HEX, V-1 bestand om in een PIC16F628A te programmeren
Download Nummermelder_V-1_NL.bas, de broncode voor PIC Basic
Download schema als PDF bestand
Meer nummermelder informatie / veel gestelde vragen (engelstalig)
Datasheet MT8870 / CM8870.pdf
Universele telefoonprint met/voor PIC besturing
Bestel geprogrammeerde PIC