Hierbij de source:
'****************************************************************
'* Name : 12f683.BAS *
'* Author : VoXiT-Pro *
'* Notice : Copyright (c) 2011 *
'* : All Rights Reserved *
'* Date : 29-7-2011 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
Device = 12F683
Config MCLRE_ON, INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, BOD_ON
Xtal 4
ADCON0 = 0
CMCON0 = 7 ' comparators off
ANSEL = 0 ' all inputs digital
WPU = 0
OPTION_REG = %10000000 ' Pull-ups = off
GPIO = 000000 ' All outputs = 0 on boot
TRISIO = 111101 ' gpio.1 output rest input
INTCON = $90 ' Enable INTE interrupt (GPIO.2 pen5 = int)
OPTION_REG.6=0
Symbol zender = 1
Symbol ds1820 = GPIO.0
Symbol zendout = GPIO.1
Symbol startman = $55
Symbol dataman = $aa
Dim tempture As Word
Dim teller As Byte
Dim manchestin As Byte
Dim manchestout As Word
Dim tempdata As Bit
Dim manchesttl As Word
Dim manchestth As Word
Dim manchestck As Word
Dim manchestzd As Word
Dim checksum As Byte
Dim C_remain As Byte
Dim C_per_c As Byte
Dim Dum As Byte
manchestin = zender
Call manchesterdata
manchestzd = manchestout
On Interrupt GoTo Meting 'Enable interrupts
Main:
@sleep
GoTo Main
Disable ' Disable interrupts in the handler
' data omzetten naar manchester
' invoer een byte
' output een word
manchesterdata:
For teller = 0 To 7
tempdata = GetBit manchestin,teller
If tempdata = 0 Then
ClearBit manchestout,(teller*2)
SetBit manchestout,(teller*2+1)
Else
SetBit manchestout,(teller*2)
ClearBit manchestout,(teller*2+1)
EndIf
Next teller
Return
Meting:
OWrite ds1820, 1, [$CC, $44] ' Start temperature conversion
While ORead ds1820, 4 = 0 : Wend
OWrite ds1820, 1, [$CC, $BE] ' Read the temperature
ORead ds1820, 2, [tempture.LowByte, tempture.HighByte, Dum,Dum,Dum,Dum, C_remain, C_per_c]
tempture = (((tempture >> 1) * 100) - 25) + (((C_per_c - C_remain) * 100) / C_per_c)
manchestin = tempture.HighByte
Call manchesterdata
manchestth = manchestout
manchestin = tempture.LowByte
Call manchesterdata
manchesttl = manchestout
checksum = zender + tempture - 1
manchestin = checksum
Call manchesterdata
manchestck = manchestout
For teller = 0 To 1
SerOut zendout, 49965,[startman,startman,startman,startman,startman,startman,startman,startman,dataman,manchestzd.HighByte,manchestzd.LowByte,manchesttl.HighByte,manchesttl.LowByte,manchestth.HighByte,manchestth.LowByte]
SerOut zendout, 49965,[dataman,dataman,dataman,dataman,dataman,dataman,manchestck.HighByte,manchestck.LowByte]
DelayMS 70
Next
INTCON.1 = 0 ' Clear interrupt flag
Resume ' Return to main program
Enable ' Enable interrupts after the handler
Eenvoudige projecten voor de microchip microcontrollers geschreven in picbasic, proton+.
zaterdag 30 juli 2011
wireless temperatuur sensor
Hierbij een eenvoudige versie van de temperatuur sensor deze stuurt alleen de temperatuur door.
De sensor is ingebouwd in een een kastje van een oude sensor, ook de 433 mhz zender komt uit deze sensor.
De 4060 zorgt er voor dat de pic elke minuut ff wakker wordt.
De sensor is een onewire ds18b20 van maxim. In een volgende post zet ik de source.
De sensor is ingebouwd in een een kastje van een oude sensor, ook de 433 mhz zender komt uit deze sensor.
De 4060 zorgt er voor dat de pic elke minuut ff wakker wordt.
De sensor is een onewire ds18b20 van maxim. In een volgende post zet ik de source.
zaterdag 23 juli 2011
Nog meer sensors.
De test uitgebreid met nog meer sensors, dit zijn de tmp75 in 12 bits mode, de n75-5.0 alleen 9 bits mode,
doet eigenlijk dus niet echt mee, 9 bits mode is aflezen op een halve graad. En de sht11.
Op het display als achtereenvolgend de ds18s20, ds2438, tmp75,n75-5.0, sht11, ds1624, adt7410 en als laatste de lm92, zeer rustig zijn de ds18s20 en de tmp75 en de ds1624 hier zie je de temperatuur heel rustig stijgen of dalen. Ook de sht11 is zeer rustig alleen omdat de resolutie hoog is zie je de temperatuur relatief vaak veranderen.
De ds2438 en de lm92 en de adt7410 zie je het meest heen en weer schommelen. De tmp75 en sht11 zitten met de temperatuur het dichtst bij de sensors van maxim-ic.
doet eigenlijk dus niet echt mee, 9 bits mode is aflezen op een halve graad. En de sht11.
Op het display als achtereenvolgend de ds18s20, ds2438, tmp75,n75-5.0, sht11, ds1624, adt7410 en als laatste de lm92, zeer rustig zijn de ds18s20 en de tmp75 en de ds1624 hier zie je de temperatuur heel rustig stijgen of dalen. Ook de sht11 is zeer rustig alleen omdat de resolutie hoog is zie je de temperatuur relatief vaak veranderen.
De ds2438 en de lm92 en de adt7410 zie je het meest heen en weer schommelen. De tmp75 en sht11 zitten met de temperatuur het dichtst bij de sensors van maxim-ic.
woensdag 20 juli 2011
temperatuur sensor test
Voor de aardigheid een kleine test van diverse temperatuur sensors.
Op het lcd achtereen volgend de eerste 4 de ds18s20, waarvan de eerste twee uit een andere serie dan
de andere 2, daarnaast de ds2438 ,ds1624, adt7410 en als laatste de lm92, De maxim-ic's geven allemaal ongeveer hetzelfde aan, de adt7410 van analog devices zit daar weer boven en met een verschil een 1.5 graad geeft de lm92 van national semiconducters de hoogste temperatuur aan. De sensors staan wel continu aan de spanning en komen nooit in rust. Dus in hoeverre ze zichzelf opwarmen is hier geen rekening mee gehouden
Op het lcd achtereen volgend de eerste 4 de ds18s20, waarvan de eerste twee uit een andere serie dan
de andere 2, daarnaast de ds2438 ,ds1624, adt7410 en als laatste de lm92, De maxim-ic's geven allemaal ongeveer hetzelfde aan, de adt7410 van analog devices zit daar weer boven en met een verschil een 1.5 graad geeft de lm92 van national semiconducters de hoogste temperatuur aan. De sensors staan wel continu aan de spanning en komen nooit in rust. Dus in hoeverre ze zichzelf opwarmen is hier geen rekening mee gehouden
zaterdag 16 juli 2011
Draadloze sensor uitgebreid.
De draadloze sensor is uitgebreid met een HH10D van Hope voor het meten van de vochtigheid.
De HH10D levert een toontje uit waarvan de frequentie varieert afhankelijk van de vochtigheid.
Met behulp van het commando COUNTER kunnen we de frequentie meten als we COUNTER gedurende 1 seconde de pulsen laten tellen. De HH10D heeft een EEPROM waarin de calibratie waarden staan met wat rekenwerk kunnen we dan de vochtigheid bereken met 1 cijfer achter de komma. Verder heb ik voor de lichtsterkte een eenvoudige LDR gebruikt. Super is dit niet maar het werkt.
De HH10D levert een toontje uit waarvan de frequentie varieert afhankelijk van de vochtigheid.
Met behulp van het commando COUNTER kunnen we de frequentie meten als we COUNTER gedurende 1 seconde de pulsen laten tellen. De HH10D heeft een EEPROM waarin de calibratie waarden staan met wat rekenwerk kunnen we dan de vochtigheid bereken met 1 cijfer achter de komma. Verder heb ik voor de lichtsterkte een eenvoudige LDR gebruikt. Super is dit niet maar het werkt.
vrijdag 15 juli 2011
Ontvanger draadloze temperatuur sensor
De eerste stappen voor de ontvanger zijn gemaakt.
In de video kunnen we zien dat we manchester data op het display krijgen.
Nu moeten we nog het signaal weer decoderen.
In de video kunnen we zien dat we manchester data op het display krijgen.
Nu moeten we nog het signaal weer decoderen.
woensdag 13 juli 2011
Draadloze temperatuur sensor
Het volgende project is het maken van een draadloos weerstation, hier alvast een filmpje van de zender.
De zender bestaat uit een 16f88 en een ds1624 i2c temperatuur sensor. Ook nog een 4060 die elke minuut een interrupt genereert. In het filmpje iets vaker. De zender gaan we nog uitbreiden met een vochtigheidssensor en een lichtsterkte meting. Zodra ook de ontvanger klaar is zetten hier de schema's en source's neer.
De zender bestaat uit een 16f88 en een ds1624 i2c temperatuur sensor. Ook nog een 4060 die elke minuut een interrupt genereert. In het filmpje iets vaker. De zender gaan we nog uitbreiden met een vochtigheidssensor en een lichtsterkte meting. Zodra ook de ontvanger klaar is zetten hier de schema's en source's neer.
Abonneren op:
Posts (Atom)