RN-MikroFunk – Mini AVR Microcontroller Modul mit Funkmodul

Programmierbares Miniatur Mikrocontroller Modul mit dem beliebten Funkmodul RFM12 bzw. RFM12b. Diese Schaltung dürfte vielen schon bekannt sein da Sie schon vor einiger Zeit im Roboternetz-Forum veröffentlicht wurde. Auf vielfache Anfrage wird diese Schaltung jetzt erstmalig unter einer freien Creative Commons Lizenz komplett mit Leiterplatten Layout und Beispielprogrammen bei uns veröffentlicht.
Die Möglichkeiten dieser Schaltung sind aufgrund des extrem niedrigen Strombedarfes und der winzigen Größe ungeheuer vielfältig. Von einer simplen Funkfernsteuerung, Wetterstation bis zur Funk-Alarmanlage ist eigentlich alles dankbar. Das ganze ist sowohl in C oder Bascom programmierbar!

RN-MikroFunk – Mehrere Jahre Batterielaufzeit denkbar

RN-MikroFunk – Mini AVR Microcontroller Modul mit FunkmodulDer Schwerpunkt dieses kleinen Controllerboards ist die Entwicklung von Fernsteuerungen, funkgesteuerten Aktoren, Sensoren beispielsweise für Robotik, Alarmanlagen, Haussteuerungen (Smart Home Systemen) und ähnliche Aufgaben.

Durch die sehr kompakte Größe von nur 29x45mm (kleiner als eine Streichholzschachtel) kann das Mikrocontroller Modul vielfältig eingesetzt werden, es passt fast überall rein. Bei der Entwicklung wurde besonders darauf geachtet das das Mikrocontroller Modul einen sehr geringen Strombedarf besitzt. Dadurch ergeben sich mit 2 bis 3 Mignonzellen, je nach Anwendung und Einsatz der Sleepmodis, Batterielaufzeiten bis zu mehren Jahren. Also ganz anders als die großen Bastelcomputer wie Raspberry Pi etc.,  welche oft nur Batterielaufzeiten von wenigen Stunden erreichen!

Möglich wurde all dies durch Ausnutzung ausgewählter SMD-Bauteile. Wir haben dennoch eine relativ große SMD-Baureihe (1206) verwendet, so das mit etwas Löterfahrung auch dieses Board noch gut mit der Hand gelötet und flott aufgebaut werden kann.

Einsteigern mit sehr wenig oder gar keiner Löterfahrung raten wir von diesem Projekt ab und empfehlen das etwas größere aber funk-kompatible RN-AVR Universal mit ähnlichen Möglichkeiten. Das Projekt RN-AVR Universal ist übrigens Funk kompatibel, es kann somit per Funk mit diesem Modul Daten austauschen.

Features des Mikrocontroller Moduls RN-MikroFunk

  • leistungsfähiger Mikrocontroller ATMEGA 328P (gleiche wie beim Arduino Uno)
    8-Bit Mikrocontroller, Technologie, AVR RISC Architektur , Gehäuse TQFP-32, 32kB Flash / 2kB Ram / EEPROM 1kB / 6 PWM / 3 Timer / Uart / I2C / SPI / 1WIRE
  • 8 Mhz Resonator
  • frei programmierbar über Standard 6poligen ISP Anschluss
  • kompakte Maße 45x29mm / passt in eine Streichholzschachtel !
  • Batteriespannung von 3,4 bis 12 V – bei Überbrückung von SJ1 auch ab mit niedrigen Spannungen von 2,5V bis 3,5V betreibbar
  • Ideal für Batterie-Stromversorgung (bzw. Akku); beispielsweise 2 Mignon Zellen, eine 9V Block oder 1 Lithium Zelle 3V oder Knopfzelle 3V
  • eingebaute 3,3V Stabilisierung (wahlweise überbrückbar)
  • eingebauter digitaler Temperatursensor DS18S20 (kann wahlweise weggelassen werden)
  • Die meisten I/O-Ports und AD-Ports stehen an Pin-leisten zur freien Verfügung
  • Messeingang für höhere Spannung (Standard bis 13,4V – Spannungsmessbereich kann durch Widerstände frei verändert werden)
  • Zusätzliche Überwachung der Batteriespannung über AD-Port integriert
  • Äußerst geringer Strombedarf durch sparsame Bauteile:
    Strombedarf im Powerdown Modi mit schlafendem Funkmodul kleiner als 10uA
    Strombedarf aktiv – jedoch mit schlafendem Funkmodul nur ca. 0,1 bis 0,2 mA
    Strombedarf beim Empfang mit Funkmodul RFM12b nur ca. 15mA
    Strombedarf beim Senden mit Funkmodul RFM12b nur ca. 20mA
  • zwei frei programmierbare Schaltausgänge (Open Kollektor; bis max. 1A belastbar)
  • RFM12 oder RFM12b Funkmodul kann direkt auf der Unterseite aufgelötet werden
  • Hohe Funkreichweite (Siehe Datenblatt des Funkmodules, unten in diesem Beitrag)
  • Funkkompatibel zu RN-AVR Universal (bei gleichem Funkmodul)
  • Eagle–Library frei zum Download
  • Beispielprogramme in Bascom Basic

 

Aufbau des Microcontroller Moduls RN-MikroFunk

RN-MikroFunk LeiterplatteDie Schaltung RN-MikroFunk richtet sich an Anwender und Entwickler mit Löterfahrung, da SMD-Bauteile eingesetzt werden. Man sollte vorher schon einige male herkömmliche Bausätze erfolgreich aufgebaut haben. Ist das der Fall, dann kann dieses Projekt ideal sein um sich mit der SMD-Technik vertraut zu machen. Zumal wir noch verhältnismäßig große SMD-Bauteile einsetzen, die Bauteile hier genau abgebildet und beschrieben werden und die Anzahl der Bauteile ja nicht sonderlich groß ist. Die verwendeten Bauteile lassen sich noch gut mit der Hand bestücken, was bei noch kleineren SMD-Baureihen erheblich schwieriger ist.

Sollten man sich noch nicht an SMD Technik herantrauen, dann empfehlen wir Ihnen das etwas größere Board in herkömmlicher Bauweise mit ähnlicher Funktionalität und Funkmodul RN-AVR-Universal (funkkompatibel).

Um die Schaltung aufbauen zu können, benötigen Sie einfach etwas Löterfahrung und eine ruhige Hand. Mit entsprechender Löterfahrung ist das Projekt in etwa in 30-60 Minuten aufgebaut und in Betrieb genommen.

Hier einige Empfehlungen die Sie beachten sollten:

  • drucken Sie entweder die komplette Anleitung mit Bildern aus oder nutzen Sie einen Notebook oder Tablet mit dieser Webseite beim Bestücken zur Hilfestellung
  • Sie benötigen folgende Werkzeuge:
    Lötkolben mit Spitze ca. 25 bis 30W oder Lötstation (ca. 300 Grad Temperatur)
    Elektronik Lötzinn (bleifrei wird empfohlen, dünner Draht)
    zusätzliches Flussmittel kann oft hilfreich sein
    Pinzette zum Halten der Bauteile

    Lupe bzw. Vergrößerungsglas, um Beschriftungen der Bauteile erkennen zu können
    Seidenschneider um Drahtenden abzuschneiden
    Scharfes Messer oder Laubsäge um Stiftleisten zu kürzen
  • arbeiten sie an einem gut beleuchteten Arbeitsplatz
  • Lassen Sie sich bei einem Leiterplatten-Anbieter (siehe Empfehlungen) eine Leiterplatte für das Projekt herstellen. Die dazu nötigen Leiterplatten-Layoutdateien können Sie auf dieser Seite gratis herunterladen. Bestellen Sie am besten gleich ein paar mehr Platinen, denn dadurch reduziert sich der Einzelpreis erheblich! Eventuell tun Sie sich mit anderen Bastlern zusammen un machen eine Sammelbestellung. Um weitere Interessenten zu finden, bietet sich eine Anfrage in diesem Forum oder dem allgemeinen Forum für Suchanfragen an
  •  Beim Bestücken gehen Sie am besten so vor, das Sie ein Bauteil nach dem anderen bestücken, wobei Sie an einer Ecke anfangen und dann Stück für Stück das nächstgelegene bestücken. Sie sollten darauf achten das Sie immer noch gut mit den Lötkolben an alle noch zu bestückenden Stellen herankommen, wenn sie ein Teil einlöten. Daher sollten Sie beispielsweise die Stiftleisten als allerletztes einlöten. Wollen Sie auch das Funkmodul auf der Unterseite bestücken, dann machen Sie dies am Schluss vor der Bestückung der Stiftleisten.
  • Beim Löten der kleinen SMD-Bauteile am besten zuerst etwas Lötzinn auf das Pad der Platine bringen, mit Spitze flüssig halten und mit Pinzette Bauteil an drücken. Ist das Bauteil erst man an einer Stelle mit etwas Lötzinn angeheftet, so kann man dann in Ruhe auf herkömmliche Weise die anderen Kontakte verlöten.
  • Obwohl die Platine natürlich mit Flussmittel und Lötstopp beschichtet ist, lassen sich manche SMD Teile wie z.B. der Mikrocontroller oft noch besser einlöten wenn Sie noch etwas Flussmittel auf die Lötpad´s auftragen, in der Regel ist mehr besser als zu wenig. Überschüssiges Flussmittel kann man mit geeigneten Reinigungsspray auch nach dem Aufbau entfernen.Im Internet finden Einsteiger über Youtube auch viele Videos die das ganze recht gut demonstrieren.
  • Beachten Sie das die Stiftleisten immer dann sinnvoll sind, wenn Sie das Modul in ein Steckbrett einstecken oder auf eine andere Platine stecken möchten. Ansonsten können Sie diese natürlich auch weglassen und das Modul später mit Drähten verbinden.
  • Wenn Sie sich nicht sicher sind wie oder wie herum ein Bauteil gehört, vergleichen Sie ihre Platine mit unseren Bildern in dieser Projektbeschreibung.
  • Beachten Sie alle rechtlichen Vorschriften bei der Inbetriebnahme, insbesondere auch im Hinblick auf das Funkmodul

 

Die nötigen Bauteile für das Projekt RN-MikroFunk

Die untere Abbildung zeigt die Platine und alle zu bestückenden Bauteile. Bezugsquellen für die einzelnen Bauteile verlinken wir wie immer unten in der Bauteile Bestell- und Bestückungsliste.

Beim Bestücken können auch Teile weggelassen werden. Benötigen Sie beispielsweise keine Funkverbindung, so lassen Sie das Funkmodul auf der Unterseite der Platine weg. Benötigen Sie keinen Temperatursensoren, so lassen Sie auch diesen einfach weg.
Das gleiche gilt auch für die Stiftleisten, oder Schalttransistoren sie können aber müssen diese nicht bestücken. In der Bestückungsliste weiter hinten in dieser Dokumentation ist noch einmal farbig markiert was alles weggelassen werden kann.

Auf diese Weise können Sie dies Controllerboard genau ihren Vorstellungen entsprechend aufbauen. Durch weglassen von Stiftleisten können sie auch erheblich Platz in der Bauhöhe sparen.

Bauteile für Mini AVR Microcontroller Modul mit Funkmodul

Bauteile die für dieses Projekt notwendig sind

Mögliche Batterien für Mikrocontroller Modul

Mögliche Batterien für Mikrocontroller Modul

Passende Batterien für dieses Projekt

Durch den großen Spannungsbereich den RN-MikroFunk verträgt, haben Sie eine große Auswahl bei der Akku oder Batterie Auswahl.

Im Bild rechts sehen Sie einige Beispiele für verwendbare Batterien.

Alternativ kann natürlich auch ein kleines Netzgerät statt Batterien benutzt werden:


Geeignetes Netzteil (Foto Amazon*)

 

Die verwendeten SMD Bauteile in der Großansicht

Aus der nachfolgenden Tabelle ersehen Sie genau wie die Einzelnen zu bestückenden Bauteile genau aussehen und wie diese beschriftet sind. Beachten Sie das die Beschriftungen sehr klein sind, eine Lupe wäre beim Aufbau daher empfehlenswert. In seltenen Fällen könnte die Bauteilbeschriftungen auch etwas abweichen da manche Bauteile von verschiedenen Herstellern gefertigt werden.

Um die Abbildung zu sehen auf jeweiliges Bauteil klicken!

Microcontroller Atmega328P

Beschriftung: Mega 328P
Polung: Pin 1 wird durch schwarzen Punkt markiert. Darauf achten das dieser Punkt wie im Bestückungsplan sitzt.
Benötigt: 1 Stück

Microcontroller Atmel AVR Atmega 328P

Resonator 8 Mhz CSTCC

Beschriftung: 8000Mh
Polung: Einbaurichtung beliebig (Mittelkontakt ist GND)
Benötigt:1 Stück

Resonator für Mikrocontroller

SMD-Tantal-Kondensator, 15µF/16V

Funktionsweise wie ein Elko
Beschriftung: 15 16d
Polung: Achtung, beim Einlöten die Polung beachten. Der weiße Strich symbolisiert den Pluspol.
Benötigt: 1 Stück

Bauteil SMD-Tantal Kondensator

SMD-Vielschicht-Keramikkondensator 100N

Beschriftung: Keine
Polung: Einbaurichtung beliebig
Benötigt: 6 Stück

Bauteile 100n Kondensatoren SMD

Widerstände

Beschriftung: Dreistellige Zahl. Die letzte Ziffer gibt an wie viel Nullen an die vorderen Ziffern angehängt werden. Aus 823 wird beispielsweise „82 000“ , also 82000 Ohm = 82 kOhm

Polung: Einbaurichtung beliebig
Benötigt werden:
1 Stück 1 KOhm
1 Stück 4,7 KOhm
1 Stück 10 KOhm
3 Stück 82 KOhm
2 Stück 1 MOhm

Bauform Bauteile SMD Widerstände

Spannungsregler MCP1702 3,3v Sot 23

Beschriftung: HGS5
Polung: Ergibt sich gut aus Bauform und Bestückungsplan!
Benötigt: 1 Stück

Hinweis: Nicht verwechseln mit den mitgelieferten Transistoren die ähnliche Bauform haben. Mit der Lupe kann man Unterschied an der Beschriftung erkennen. Zudem ist der Spannungsregler geringfügig größer.

Bauform Bauteil SMD Spannungsregler

Transistor IRLML2502 (HEXFET)

Beschriftung: GKBM9
Polung: Ergibt sich gut aus Bauform und Bestückungsplan!
Benötigt: 2 Stück

Hinweis: Nicht verwechseln mit den mitgelieferten Spannungsregler welcher eine ähnliche Bauform hat. Mit der Lupe kann man Unterschied an der Beschriftung erkennen. Zudem ist der Spannungsregler geringfügig größer.

SMD Bauform Bauteil HexFet

SMD-Induktivität, 1206, Ferrit, 10µH

Beschriftung: keine
Polung: Einbaurichtung beliebig (Goldene Kontakte gehören nach unten, in Abbildung also von unten gesehen)
Benötigt: 1 Stück

SMD Bauteil 10u Spule Iduktivität

Digitaler Temperatursensor DS18S20

Siehe auch Beitrag: Digitaler Temperatursensor DS18S20
Beschriftung: DS1820
Polung: Ergibt sich von oben gesehen durch die abgeflachte Seite
Benötigt: 1 Stück

Digitaler Temperatur Sensor Bauteil_DS18s20

Stiftleiste für ISP-Programmierstecker

Benötigt : Es wird nur eine 3 x 2 polige Stiftleiste benotigt. Da eine 10 x 2 polige mitgeliefert wird, ist diese mit dem Messer oder Laubsäge an der, im Bild markierten Stelle, zu trennen.

Jeder 6 polige Standard ISP-Programmer kann später daran angeschlossen werden um das Board zu programmieren. Falls Sie einen 10 poligen Programmer nutzen, wie den Bascom USB-Programmer, dann benötigen Sie einen Adapter 6 auf 10.

Stiftleiste auftrennen

Stiftleisten für das Modul

Benötigt : Es werden zwei 17 polige Stiftleisten benötigt. Da nur 20 polige mitgeliefert werden, sind diese mit dem Messer oder Laubsäge an der, im Bild markierten Stelle, zu trennen.

Bauteil Stiftleisten abtrennen

Funkmodul RFM12b

Siehe auch Beitrag: Funkmodul RFM12B

Polung: Ergibt sich durch die Skizierung des Quarzes und Chips auf der Unterseite von RN-MikroFunk sowie die Bilder in dieser Doku.

Benötigt: 1 Stück (nur wenn Funk benötigt wird)

RFM12b Universelles Funkmodul

Leiterplatte RN-MikroFunk

Hochwertige Platine aus 4 Lagen mit Leiterbahnen. Sie wird aber genauso verlötet wie eine ein- oder zweilagige Platine!
Benötigt: 1 Stück
Eagle-Dateien für Leiterplatten Bestellung finden Sie etwas weiter unten in diesem Beitrag!

Leiterplatte zu Projekt RN-MikroFunk

Netzteil oder Batterie

Netzteil oder Batterie
Eine Spannungsquelle zwischen 3 und 12 V
Benötigt: 1 Stück
Passende Batterien für Projekt RN-MikroFunk

 

Schaltplan zu dem Projekt RN-MikroFunk

Schaltplan - RN-MikroFunk – Mini AVR Microcontroller Modul mit Funkmodul

Bestückungsplan zu RN-MikroFunk

Bestückungsplan zum Mikrocontroller Modul

 

Bauteile Bestückungsliste / Bestellliste

Platinenbezeichnung    Beschreibung                         Bestellnummer/Bezugsquelle

C1,C3,C4,C5,C6, C7     100n Keramik C1206 Kondensator       Bezugsquelle Reichelt*
C2                     15uF bis 25uF/16V SMC_C              Bezugsquelle Reichelt*
IC1                    ATMEGA 168 oder 328 TQFP32-08        Bezugsquelle Farnell*
IC2                    Temperatursensor DS18S20 To92        Bezugsquelle Reichelt*
IC3                    Spannungsregler MCP1702 3,3V(SOT23)  Bezugsquelle Farnell*
L1                     10uH Induktivität (1206)             Bezugsquelle Reichelt*
R1                     SMD Widerstand 10k (M1206)           Bezugsquelle Reichelt*
R2                     SMD Widerstand 1k (M1206)            Bezugsquelle Reichelt*
R3                     SMD Widerstand 4,7k (M1206)          Bezugsquelle Reichelt*
R4, R5                 SMD Widerstand 1M (M1206)            Bezugsquelle Reichelt*
R6, R7, R8             SMD Widerstand 82k (M1206)           Bezugsquelle Reichelt*
T1, T2                 HEX-FET IRLML2502 (MICRO3)           Bezugsquelle Farnell*
Q1                     8 Mhz Resonator CSTCC8.00            Bezugsquelle Reichelt*
ISP                    Stiftleiste 2x3 Pin´s                Bezugsquelle Reichelt*
JP1,JP2                17pol Stiftleiste                    Bezugsquelle Reichelt*
RFM12B                 Funkmodul RFM12b                     Ebay Suche*
Platine                RN-MikroFunk Leiterplatte            Leiterplattenhersteller

Je nach Anwendung können auch Bauteile weggelassen werden, siehe hier:
R4/R7 nur nötig wenn größere externe Spannung gemessen werden soll
IC2/R3 nur nötig wenn Temperatur gemessen werden soll oder 1Wire Bus genutzt wird
T1,T2 nur nötig, wenn irgend ein externer Verbraucher nach GND geschaltet werden soll
RFM12, R2, R8 nur nötig wenn Funkverbindung benötigt wird
IC3, C1 nur nötig wenn Batteriespannung größer als 3,6V 
(kann ansonsten weggelassen werden, wobei Jumper SJ1 dann mit Lötpunkt verbunden werden muss)

Alle Angaben ohne Gewähr

Downloads

  Eagle-Dateien (ZIP)
  Eagle-Lib (ZIP)
  Bascom Beispielprogramme (ZIP)
  RFM12B Datenblatt (ZIP)
   Datenblatt zum Atmel AVR Controller ATMega 328
   ELV Datenblatt passendes TX/USB-Modul

Leiterplatte zum Projekt bestellen

Neu! Die Leiterplatte für dieses Projekt ist direkt über den Shop PlatinenCenter erhältlich. Da die Platinen dort vorgefertigt werden, sind diese sehr preiswert lieferbar.

Zum Platinen Shop

Individuelle Leiterplatten

Möchtest du keine vorgefertigte Leiterplatte, weil Du vielleicht vorher Änderungen an dem Layout vornehmen möchtest, dann empfehlen ich die Anbieter auf unserer Leiterplatten-Service Seite.

Leiterplatten Hersteller

Das Leiterplattenangebot  ist ein Service Angebot der jeweiligen Anbieter. Bei Fragen bezüglich Lieferung und Preis bitte dort nachfragen!

 

Platinenoberseite (stark vergrößert)

 

Leiterplatte RN-Mikrofunk Oberseite

Eine hochwertige 4 Lagen Platine mit innerer GND Abschirmung

Leiterplatten Oberseite der bestückten Platine

In etwa so sieht die Platine aus wenn Sie mit der Hand bestückt wurde. Bei Bestücken drucken Sie sich am besten diese Abbildung sowie die Bestückungsliste aus.

Microcontroller Board RN-MikroFunk bestückt

Microcontroller Board RN-MikroFunk bestückt

Beschreibung des Mikrocontroller Moduls RN-MikroFunk

Pinbelegung des Moduls

Achtung: Der Pin 12 ist hier in der Abbildung als auch auf der Platinenoberseite falsch beschriftet, hier liegt nicht 3,3V an sondern GND !

ATMega Mikrocontroller Board Pinbelegung

 

Pinbelegung des ISP Programieranschlusses

Pinbelegung des ISP Programieranschlusses

Wird das Modul in eigenen Schaltungen oder Layouts genutzt, so steht auch eine Library für das Leiterplatten CAD-Programm EAGLE zur freien Verfügung (siehe Downloads oben))

Durch das Standard Raster kann das Modul aber auch sehr gut auf einem Steckbrett eingesetzt werden.

Mikrocontroller Experimente mit RN-MikroFunk

Mikrocontroller Experimente mit RN-MikroFunk

Funktionen der Pin´s

ATMega Mikrocontroller Board Pinbelegung

Pin NummerSignalBemerkung
1AntenneWenn das Modul auf der Unterseite mit einem Funkmodul RFM12 oder RFM12B bestückt wird, dann ist hier die Antenne anzuschließen. In der Regel reicht Draht, z.B. bei 433 Mhz-Modulen mit 17cm Länge)
2,4,7,12,16,31,32GNDMasse/Minuspol - alle GND-Pins sind intern auf dem Modul miteinander verbunden, es müssen also nicht alle angeschlossen werden
5,8,17,34+3,3VHier steht die stabilisierte Ausgangsspannung von 3,3V für externe Komponenten zur freien Verfügung. Maximal mit 200 mA belastbar.
Alle +3,3V-Pins sind intern auf dem Modul miteinander verbunden!
Achtung: Wenn die Lötbrücke SJ1 auf dem Board geschlossen wird, dann steht hier die volle Batteriespannung zur Verfügung.
6, 24, 25, 26, 27AD-PortFreier analoger Port entsprechend der Beschriftung (zum messen von Spannungen , bis zur eingestellten internen Referenzspannung)
10,11,14, 15, 19, 21, 22, 24, 25, 26, 27IO-PortFreier IO-Port entsprechend der oberen Zeichnung auch mit vielen Sonderfunktionen wie (i2C, PWM, Interrupts etc.)
3UMESSDies ist ein analoger Port, vor dem jedoch ein Spannungsteiler aus den Widerständen R4/R7 geschaltet wurde. Je nachdem was für Widerstände bestückt werden, können somit deutlich höhere Spannungen gemessen werden. Werden die vorgeschlagenen Werte von R4=1M und R7=82k eingelötet, so kann bei einer Referenzspannung von 1,1V bis zu 13,4V gemessen werden.
131WIREDies ist der Port PD7, welcher mit einem Pullup-Widerstand von 4,7k beschaltet ist und als 1WIRE-Bus fungiert. Der Sensor DS18S20 nutzt diesen Pin (falls sie diesen bestücken). Es können aber auch zusätzliche externe Sensoren mit 1WIRE Bus an diesen Pin angeschlossen werden.
29,30BatterieHier wird der Pluspol der Batteriespannung angelegt, beide Pin´s sind miteinander verbunden, es muss nur einer genutzt werden. Die Eingangsspannung sollte zwischen 3,4 und 12V liegen.
18PD4Dieser Port wird intern genutzt um den Transistor T2 zu schalten. Dies muss bei der Belegung bzw. Verwendung bedacht werden!
20PD2/INT0Dieser Pin ist mit dem IRQ-Signal des Funkmoduls verbunden. Er kann in der Software zum signalisieren von empfangenen Daten genutzt werden.
Gewöhnlich wird er extern nicht belegt!
9PB2/SSDieser Port wird intern zur selektierung des Funkmoduls benutzt.
Gewöhnlich wird er extern nicht belegt!
23RESETDies ist der RESET Eingang vom Controller als auch Funkmodul. Wird er kurz auf LOW gezogen, wird RESET ausgelöst.
28,33T1 / T2Offener Kollektor Eingang des jeweiligen Transistors. Der Controller kann somit diesen Pin nach GND durchschalten. Bis ca. 1 A belastbar!

Komplette Port Belegungen des Microcontroller Moduls

PortVerwendungBemerkung
PB0/PCINT0/CLK0/ICP1freiSteht extern frei zur Verfügung
PB1/PCINT1/OC1AfreiSteht extern frei zur Verfügung
PB2/PCINT2/SS/OC1BSSWird intern zur Selektion (SEL) des Funkmodules genutzt
PB3/PCINT3/OC2A/MOSIISP/FunkWird zur Programmierung verwendet und und ist mit SDI vom Funkmodul verbunden.
PB4/PICINT4/MISOISP/FunkWird zur Programmierung verwendet und und ist mit SDO vom Funkmodul verbunden.
PB5/PCINT5/SCKSP/FunkWird zur Programmierung verwendet und und ist mit SCK vom Funkmodul verbunden.
PB6ResonatorHier ist ein 8 MHz Resonator angeschlossen um genauere Taktraten zu gewährleisten
PB7ResonatorHier ist ein 8 MHz Resonator angeschlossen um genauere Taktraten zu gewährleisten
PC0/ADC0/PCINT8T1Dieser Port schaltet bei High den Transistor T1 durch
PC1/ADC1/PCINT8Batterie-SpannungDieser Port dient intern zum Messen der Batteriespannung über einen sehr hochohmigen Spannungsteiler. Bei einer Referenzspannung von 1,1 Volt kann bis 13,4V gemessen werden.
PC2/ADC2/PCINT10freiSteht extern frei zur Verfügung
PC3/ADC3/PCINT11freiSteht extern frei zur Verfügung
PC4/ADC4/SDA/PCINT12freiSteht extern frei zur Verfügung
PC5/ADC5/SCL/PCINT13freiSteht extern frei zur Verfügung
PC6/RESET/PCINT14RESETReset von Controller und von Funkmodul
PD0/RXD/PCINT16freiSteht extern frei zur Verfügung
PD1/TXT/PCINT17freiSteht extern frei zur Verfügung
PD2/INT0/PCINT18IRQ/FunkIst mit dem IRQ-Signal des Funkmoduls verbunden.
PD3/PCINT19/OC2V/INT1freiSteht extern frei zur Verfügung
PD4/PCINT20/XCK/T0T2Dieser Port schaltet bei High den Transistor T2 durch
PD5/PCINT21/OC0B/T1freiSteht extern frei zur Verfügung
PD6/PCINT22/OC0A/AIN0freiSteht extern frei zur Verfügung
PD7/PCINT23/AIN11WIREDieser Port ist mit einem Pullup-Widerstand von 4,7k beschaltet und dient als 1WIRE-Bus. Der Sensor DS18S20 nutzt diesen Port (falls sie diesen bestücken). Es können aber auch zusätzliche externe Sensoren mit 1WIRE Bus an diesen Pin angeschlossen werden.
ADC6freiSteht extern frei zur Verfügung
ADC7UMESSVor diesen analogen Port ist ein Spannungsteiler , aus den Widerständen R4/R7, geschaltet. Je nachdem was für Widerstände bestückt werden, können somit deutlich höhere Spannungen gemessen werden. Werden die vorgeschlagenen Werte von R4=1M und R7=82k eingelötet, so kann bei einer Referenzspannung von 1,1V bis zu 13,4V an dem Ausgangspin UMESS gemessen werden.

Platinenoberseite der bestückten Platine (vergrößert)

In etwa so sieht die Platine aus wenn Sie mit der Hand bestückt wurde. Bei Bestücken drucken Sie sich am besten diese Abbildung sowie die Bestückungsliste aus.

Microcontroller Board RN-MikroFunk bestückt

Microcontroller Board RN-MikroFunk bestückt

Platinenunterseite (vergrößert)

Auf der Platinenunterseite kann bei Bedarf ein Funkmodul vom Typ RFM12 oder RFM12b aufgelötet werden. Der skizzierte Quarz auf der Unterseite und die Lötkontakte, zeigen eigentlich recht genau wie herum das Modul aufgelötet wird. Hier aber auch noch mal eine Abbildung:

RN-MikroFunk Unterseite der leiterplatte mit Funkmodul

RN-MikroFunk Unterseite der Leiterplatte mit Funkmodul

Und nicht vergessen: Bitte beachten Sie das beim Betrieb eines Funkmoduls die gesetzlichen Bestimmungen beachtet werden müssen. Diese Bestimmungen regeln die Kanalnutzung, Sendeleistung u.s.w.! Der Betrieb darf nur in freigegebenen Frequenzbereichen mit der maximal erlaubten Sendeleistung und Sendedauer erfolgen. Bitte entnehmen Sie diese Informationen bei der jeweils zuständigen Behörde. Für Deutschland finden Sie diese Informationen unter www.bundesnetzagentur.de . Beachten Sie dazu auch das Datenblatt des Funkmodulherstellers.

Die Eagle Library für Elektronik Entwickler

Erfahrene Entwickler welche eigene Platinen erstellen, findenoben unter Downloads auch eine EagleLibary.
In dieser Eagle Library ist das komplette RN-MikroFunk als Bauteil vorhanden. Es kann somit sehr leicht in Schaltplänen genutzt und auf Platinen steckbar gemacht werden.
Das ganze sieht dann in Eagle so aus (hier in einem DIN A5 Frame).

RN-Mikrofunk als Schaltsymbol in einer Eagle Lib

RN-Mikrofunk als Schaltsymbol in einer Eagle Lib

Im Eagle Layout Fenster sieht das so aus

Hier RN-MikroFunk auf einer Europaplatine (der schwarze Bereich ist also 16 x 10 cm groß)

Eagle Package auf Europakarte

 

Die erste Inbetriebnahme von RN-MikroFunk

Für die erste Inbetriebnahme haben wir ein Steckbrett, in das wir das Modul einstecken, verwendet. Als Spannungsquelle nutzen wir 3 Mignonzellen (Akkus).
Zusätzlich haben wir noch eine kleine LED mit einem 1 kOhm Widerstand zwischen + Batterie und Port PD3 angeschlossen, damit wir sehen ob sich was tut.

In Bascom Basic haben wir schnell dieses kleine Blink-Testprogramm eingetippt (sie finden es oben unter Downloads):

Bascom Beispielprogramm für RN-Mikrofunk: Programm_Blink

Wenn wir dieses Programm nun kompilieren und auf das Board RN-MikroFunk übertragen, dann sollte die angeschlossene LED genau im Sekundentakt blinken.

Vorausgesetzt wir haben alles korrekt aufgebaut und verdrahtet. Vergleichen Sie die Verdrahtung mit dem unteren Bild.

Inbetriebnahme von RN-Mikrofunk

Zweitens setzt dieses Programm durch die Anweisung $PROG &HFF,&HFF,&HD9,&HFF im Quellcode, automatisch die sogenannten Fusebits des Controllers richtig, so das auch der Resonator die genaue Taktfrequenz von 8 MHz bestimmt. Die manuelle Fusebit Einstellung, bei der Anfänger nicht selten Fehler machen, können sie sich so ersparen! Achtung: Falls Sie einen anderen Programmer als den Bascom USB-Programmer nutzen, kann es sein das die Fusebits nicht automatisiert programmiert werden, in dem Fall müssten diese dann doch manuell eingestellt werden. Auf dem nachfolgenden Bild sehen Sie wie die Fusebits korrekt eingestellt in Bascom aussehen:

Atmel AVR Fusebits programmieren

 

RN-MikroFunk – Test der Ports (Schnelltest)

Unser vorheriges Blink-Programm hat bereits vieles getestet. Sie wissen nun das die Programmierung schon mal klappt. Dadurch wissen Sie auch das alle für ISP notwendigen Ports korrekt funktionieren, also kein Löt- oder Bestückungsfehler vorhanden ist. Sie wissen auch das Resonator und Spannungsstabilisierung offenbar korrekt funktionieren.

Um nun zu Prüfen ob auch die zahlreichen anderen frei verfügbaren Ports korrekt funktionieren, erweitern wir das Programm einfach und lassen alle freien Ports gleichzeitig blinken. Sie brauchen dann nur mit dem Draht, welcher zur LED geht, alle freien Ports mal kurz kontaktieren, um zu sehen ob dieser im Sekundentakt blinkt. Ist das irgendwo nicht der Fall, dann müssten sie an dieser Stelle die Leitung verfolgen und nach einem Löt- oder Bestückungsfehler suchen.

Dieses Programm lässt auch die zwei Schaltausgänge T1 Schalt und T2 Schalt blinken. Auch das können Sie mit der LED testen. Über diese Schaltausgänge können stromintensive Verbraucher (bis ca. 1A, z.B. Sirenen, Beleuchtung, Relais uvm.) geschaltet werden.

Hier das Programm:

'##############################################################
'BlinkAll.bas
'
'Ein Testprogramm für die Universalplatine RN-MikroFunk
'
'Das Programm schaltet alle frei verfügbaren Ports
'im Sekundentakt zwischen Low und High um
'Wird dort eine Led angeschlossen, blinkt diese.
'Mit einer LED oder einem Messgerät kann man nun flott prüfen
'ob die Ports korrekt funktionieren und somit der Aufbau korrekt
'vorgenommen wurde
'
'Zudem sorgt die Fusebit Anweisung dafür, das die Fusebits
'korrekt auf Resonator-Takt umgestellt werden
'
'Weitere Beispiele unter https://www.mikrocontroller-elektronik.de/

'######################################################################

$programmer = 12 'Bascom USB Programmer (Zeile weglassen wenn anderer Programmer)
$PROG &HFF,&HFF,&HD9,&HFF 'Diese Anweisung stellt Fusebits ein

$regfile = "m328pdef.dat"
$framesize = 32
$swstack = 32
$hwstack = 64

$crystal = 8000000 'Resonatorfrequenz
'$baud = 9800 'Baudrate (Übertragungsgeschwindigkeit)
'Baud = 9800

Config PortD.0 = Output
Config PortD.1 = Output
Config PortD.3 = Output
Config PortD.4 = Output
Config PortD.5 = Output
Config PortD.6 = Output

Config PortC.0 = Output
Config PortC.2 = Output
Config PortC.3 = Output
Config PortC.4 = Output
Config PortC.5 = Output

Config PortB.0 = Output
Config PortB.1 = Output

Do
 PortD.0=1
 PortD.1=1
 PortD.3=1
 PortD.4=1 'Schaltet T2
 PortD.5=1
 PortD.6=1
 Portc.0=1 'Schaltet T1
 Portc.2=1
 Portc.3=1
 Portc.4=1
 Portc.5=1
 Portb.0=1
 Portb.1=1

 wait 1

 PortD.0=0
 PortD.1=0
 PortD.3=0
 PortD.4=0 'Schaltet T2
 PortD.5=0
 PortD.6=0
 Portc.0=0 'Schaltet T1
 Portc.2=0
 Portc.3=0
 Portc.4=0
 Portc.5=0
 Portb.0=0
 Portb.1=0

 wait 1

Loop

Das Programm ist auch oben unter den Downloads dabei.
Beachten Sie das es einige Ports gibt, die in dem Programm nicht geschaltet werden. Das sind die Ports die intern auf dem Modul für andere Zwecke genutzt werden, zum Beispiel für den Temperatursensor oder das Funkmodul. Diese dürfen nicht einfach so auf Ausgang geschaltet werden! Diese Ports testen wir später indem wir den Sensor abfragen oder das Funkmodul ansteuern.

Datenübertragung an PC per USB

Als nächstes testen wir die RS232-Schnittstelle (UART) von RN-MikroFunk. Dies ist besonders wichtig, da wir damit Daten zum PC senden können. Das ist ja eine Voraussetzung um uns beispielsweise die Temperatur oder Funkdaten sichtbar zu machen. Da die meisten PC´s heute keine RS232-Schnittstelle mehr besitzen, verwenden wir ein USB-Modul von der Firma ELV für die Übertragung. Dieses Modul wird einfach in das Steckbrett eingesteckt und eine Drahtverbindung zwischen dem RX Pin des Modules und dem TX-Pin (PD1) von RN-MikroFunk hergestellt. GND vom USB-Modul und RN-MikroFunk natürlich auch verbinden. Per USB-Kabel wird dann das Modul noch mit dem PC verbunden.

Zur Probe laden wir dann folgendes Programm in RN-MikroFunk:

'##############################################################
'RS232_USB_Beispiel.bas
'
'Ein Testprogramm für die Universalplatine RN-MikroFunk
'
'Das Programm zählt eine Zahl hoch und gibt diese im Sekundentakt
'über die RS232 Schnittstelle aus
'Wenn ein USB-Modul an RN-MikroFunk angeschlossen wird,
'dann wird die Zahl über USB zu einem virtuellen COM Port übertragen
'und kann auch mit allen Programmen oder Terminalprogramm empfangen werden
'
'
'Weitere Beispiele mikrocontroller-elektronik.de / Roboternetz.de / rn-wissen.de
'######################################################################

$programmer = 12 'Bascom USB Programmer (Zeile weglassen wenn anderer Programmer)
$PROG &HFF,&HFF,&HD9,&HFF 'Diese Anweisung stellt Fusebits ein

$regfile = "m328pdef.dat"
$framesize = 32
$swstack = 32
$hwstack = 64

$crystal = 8000000 'Quarzfrequenz
$baud = 9800 'Baudrate (Übertragungsgeschwindigkeit)
Baud = 9800

Dim Z As Integer 'Zahl definieren die hochgezählt wird
Z = 0
Do
 Print "Zahl:" ; Z
 Z = Z + 10
 Waitms 100
Loop

Über das eingebaute Terminal-Programm in Bascom können Sie nun die empfangenen Zahlen anzeigen lassen. Das ganze sollte dann in etwa so aussehen:

Bascom Terminalprogramm und Mikrocontroller

Werden keine Daten empfangen, dann prüfen Sie noch mal ob Sie auch wirklich die Drahtverbindung Mikrofunk TXD nach RX-USB Modul korrekt vorgenommen haben, unten im Foto sehen Sie noch mal die komplette Verdrahtung. Prüfen Sie auch ob Sie bei den Terminal-Einstellungen den richtigen COM-Port und die richtigen Übertragungsparameter gewählt haben (9800 Baud, 1 Stopp-bit, 8 Datenbits, Keine Parität) eingestellt haben. Den COM-Port des USB-Moduls* erfahren Sie über den Gerätemanager von Windows.

RN-MikroFunk und USB-Modul

GND vom USB-Modul und RN-MikroFunk natürlich auch verbinden, hier im Bild nicht sichtbar

Die Batteriespannung abfragen

Der Port PC1 (ADC1) von RN-MikroFunk ist intern mit über einen sehr hochohmigen Spannungsteiler mit der Batterie verbunden. Dadurch kann der Mikrocontroller jederzeit die Spannung messen. Dies ist beispielsweise sinnvoll um festzustellen wann die Batterie langsam leer wird,um eventuell über ein Signal darauf aufmerksam zu machen. Gerade bei Alarmanlagen und wichtigen Sensoren wäre das ja sehr wichtig.

Das nachfolgende Programm demonstriert wie wir diese Spannung im Programm genau ermitteln und über RS232 (oder über das USB-Modul) an den PC übertragen. Man könnte natürlich auch über Funk den Batteriezustand melden.

'##############################################################
'Batteriespannung_ausgeben.bas
'
'Ein Testprogramm für die Universalplatine RN-MikroFunk
'
'Das Programm ermittelt die Batteriespannung, also die Spannung
'vor dem Spannungsregler!
'Die Spannung wird über RS232 ausgegeben.
'Wenn ein USB-Modul an RN-MikroFunk angeschlossen wird,
'dann wird die Zahl über USB zu einem virtuellen COM Port übertragen
'und kann auch mit allen Programmen oder Terminalprogramm empfangen werden
'
'Weitere Beispiele mikrocontroller-elektronik.de www.Roboternetz.de und rn-wissen.de
'######################################################################

$programmer = 12 'Bascom USB Programmer (Zeile weglassen wenn anderer Programmer)
$PROG &HFF,&HFF,&HD9,&HFF 'Diese Anweisung stellt Fusebits ein

$regfile = "m328pdef.dat"
$framesize = 32
$swstack = 32
$hwstack = 64

$crystal = 8000000 'Quarzfrequenz
$baud = 9800 'Baudrate (Übertragungsgeschwindigkeit)
Baud = 9800

BattAdc Alias Pinc.1
Config BattAdc = Input

Config Adc = Single , Prescaler = 128 , Reference = INTERNAL_1.1
dim adcbattwert as integer
dim r1 as single
dim r2 as single
dim uref as single
dim udigit as single
dim vh as single
dim spannung as single

Start Adc
Do
 r1=1000 'Spannungsteiler Widerstand 1 in kOhm
 r2=82 'Spannungsteiler Widerstand 2 in kOhm
 uref=1100 'Referenzspannung im mV 1,1V =1100mV
 vh=r1/r2 'Verhältnis ausrechnen
 udigit=uref/1024
 adcbattwert=Getadc(1)
 spannung= adcbattwert*udigit
 spannung=spannung*vh
 spannung=spannung/1000 'In Volt umrechnen
 'print "ADC-Wert:"; adcbattwert
 print "Spannung V:"; Fusing(spannung , "#.##")

 Wait 1
Loop

Die Verschaltung ist die gleiche wie zuvor im Beispiel, es wird praktisch nur der TX-Port benötigt um die Daten an den PC zu übermitteln

Auf dem PC würde es in etwa so aussehen:

Batteriespannung mit Mikrocontroller messen

Tipp: Externe Spannungen messen

RN-MikroFunk verfügt an Pin 3 (ADC7) bereits über einen Messeingang der ebenfalls über einen eingebauten Spannungsteiler geht. Sie können daher Spannungen zwischen 0 und 13,4V direkt an ADC7 (also Modul Pin 3 UMESS) anlegen und quasi mit dem gleichen Programm ausmessen. Sie müssen lediglich die Zeile adcbattwert=Getadc(1) durch die Zeile adcbattwert=Getadc(7) ersetzen wenn sie die Spannung vom UMESS Eingang wissen wollen. Durch andere Widerstandswerte, beim Bestücken der Platine, können Sie den Messbereich ihren Wünschen anpassen.

Die Temperatur messen

RN-MikroFunk verfügt über einen hochwertigen digitalen Temperatursensor vom Typ DS18S20, vorausgesetzt sie haben diesen bestückt. Dieser Sensor ist wesentlich genauer und zuverlässiger als Sensoren in einigen preiswerten Temperaturfühlern oder Wetterstationen.

Er kann beispielsweise genutzt werden um die Zimmertemperatur zu erfahren und per Funk zu übermitteln. An dem selben Port können übrigens noch weitere Sensoren des gleichen Typs (mit 1 Wire Bus) angeschlossen werden, zum Beispiel um Temperaturen wie Vorlauf- oder Rücklauf einer Heizung zu ermitteln, hier gibt es sicher viele Möglichkeiten.

Das nachfolgende Beispiel demonstriert wie man diesen Temperatursensor ausliest und die Temperatur über RS232 (oder USB-Modul) im 5 Sekundentakt ausgibt.

Jetzt nicht erschrecken, das Programm ist etwas länger. Dies liegt zum einen daran das es viele Kommentarzeilen enthält und zum anderen daran das ich gleich einige Funktionen hinein gebracht habe um mehrere Sensoren an einer Leitung gezielt ansprechen zu können. Wenn Sie nur den internen Sensor nutzen möchten und keinen externen anschließen wollen, dann könnten Sie das Programm erheblich kürzen.

'##############################################################
'Temperatur_messen.bas
'
'Ein Programm für die Universalplatine RN-MikroFunk
'
'Das Programm zeigt wie man den 3 poligen Temperatursensor
'DS18S20 ausliest. Nach dem Aufruf wird die Temperatur alle 5 Sekunden
'ausgegen. Es können auch mehrere Sensoren auf einer Leitung
'angesprochen werden.
'
'Info mikrocontroller-elektronik.de  www.Roboternetz.de und rn-wissen.de
'######################################################################

'Portbelegung intern PD7 Sensor Daten DS18S20 
Declare Sub Ds1820_seriennummer()
Declare Sub Ds1820_alleseriennummern()
Declare Sub Ds1820_temperatur_ausgeben()
Declare Sub Ds1820_sensor_temperatur()

$programmer = 12 'bascom USB Programmer (Zeile weglassen wenn anderer Programmer)
$PROG &HFF,&HFF,&HD9,&HFF 'Diese Anweisung stellt Fusebits ein

$regfile = "m328pdef.dat"
$framesize = 32
$swstack = 32
$hwstack = 64

$crystal = 8000000 'Quarzfrequenz
$baud = 9800 'Baudrate (Übertragungsgeschwindigkeit)
Baud = 9800

Config 1wire = Portd.7
Dim Sensordaten(9) As Byte
Dim Sensornummer(8) As Byte

Wait 2
Print "Beispielprogramm fuer RN-MikroFunk um Temperatur auszulesen"
Print "Serienummer notieren!"
Print "Einzelabruf:"
Ds1820_seriennummer
Print
Print "Falls es mehrere gibt, gleich alle abrufen::"
Ds1820_alleseriennummern
Print
Print "Temperatur ausgeben:•"

Do
' Ds1820_temperatur_ausgeben 'Diese Funktion wenn nur ein Sensor am Bus
 Ds1820_sensor_temperatur 'Diese Funktion wenn man mehrere an gleicher

 'Leitung hat und einen davon ansprechen möchte
 Wait 5
Loop


' ************ Hilfsfunktionen zur Kommunikation mit dem in ************
' RN-MikroFunk integrierten Temperatursensor DS18S20
' (nähere Infos im Datenblatt des Sensors / mikrocontroller-elektronik.de)
' Hilfreich auch der RN-Wissen Artikel unter
' http://www.rn-wissen.de/index.php/Bascom_und_1-Wire
' ************ ************** ************ ************** ************

'Gibt die Seriennummer über RS232 aus
'diese ist in jedem Sensor eindeutig vorhanden
'sie wird nur benötigt wenn mehrere Sensoren an einer Leitung hängen

Sub Ds1820_seriennummer()
Local I As Integer
Local Crc As Byte

 1wreset
 1wwrite &H33 ' ROM-Befehl zum lesen der SerienNr
 Sensornummer(1) = 1wread(8) ' 8 Bytes lesen
 Crc = Crc8(sensornummer(1) , 7)
 If Crc <> Sensornummer(8) Then Print "Daten fehlerhaft gelesen (CRC-Fehler)!"
 For I = 1 To 8
 Print Hex(sensornummer(i)); ' Ausgeben
 Print " ";
 Next
 Print
End Sub

'Gibt die Seriennummer aller Sensoren an einem Bus über RS232 aus
Sub Ds1820_alleseriennummern()
Local Crc As Byte
Local I As Integer
Local Anzahl As Integer

 Sensornummer(1) = 1wsearchfirst()
 If Err = 0 Then 'Wenn err, dann gibt es keinen Sensor
 Do
 Crc = Crc8(sensornummer(1) , 7)
 If Crc <> Sensornummer(8) Then Print "Daten fehlerhaft gelesen (CRC-Fehler)!"
 For I = 1 To 8
 Print Hex(sensornummer(i));
 Print " ";
 Next
 Print

 Sensornummer(1) = 1wsearchnext() 'nächste suchen
 Loop Until Err = 1

 End If

 Print
 Anzahl == 1wirecount() 'Anzahl der Sensoren
 Print "Anzahl der Sensoren am Bus: " ; Anzahl
End Sub


'Diese Funktion gibt Temperaturbereich +85 bis -55 mit Vorzeichen auf ein halbes Grad genau aus
'Diese Funktion ist nur geeignet, wenn nur ein Sensor am Bus liegt
'Auf Fließkommazahlen wird verzichtet

Sub Ds1820_temperatur_ausgeben()
Local Temp As Integer
Local S As String * 5
Local Crc As Byte

 1wreset ' Initialisierung
 1wwrite &HCC ' SKIP ROM
 1wwrite &H44 ' CONVERT T / Temperaturmessung starten
 Waitms 500 ' warten
 1wreset ' Initialisierung
 1wwrite &HCC ' SKIP ROM
 1wwrite &HBE ' READ SCRATCHPAD
 Sensordaten(1) = 1wread(9) ' Daten lesen
 Temp = Sensordaten(1)
 If Sensordaten(2) > 0 Then 'Minus Temperatur
 Temp = 256 - Temp
 Temp = Temp * 10
 Temp = Temp / 2
 Temp = 0 - Temp 'Vorzeichen -

 Else
  Temp = Temp * 10
  Temp = Temp / 2
 End If

 S = Str(temp)
 Print
 Print Format(s , "0.0") ; " Grad C"
 Crc = Crc8(sensordaten(1) , 8)
 If Crc <> Sensordaten(9) Then Print "Daten fehlerhaft gelesen (CRC-Fehler)!"
End Sub

'Diese Funktion macht das gleiche wie die Funktion Ds1820_temperatur_ausgeben
'Jedoch wird hier gezielt ein bestimmter Sensor angesprochen, es können also
'mehrere an der gleichen Leitung hängen
'Die Seriennummer des anzusprechenden Sensors muss vor dem Aufruf
'in das Array Sensornummer eingetragen werden

Sub Ds1820_sensor_temperatur()
Local Temp As Integer
Local S As String * 5
Local Crc As Byte

 1wverify Sensornummer(1) 'Seriennummer muss in Array Sensornummer stehen
 If Err = 0 Then
 1wwrite &H44
 Waitms 500 'warten
 1wverify Sensornummer(1) 'Gerät auswählen
 1wwrite &HBE 'Temperatur lesen
 Sensordaten(1) = 1wread(9) 'Daten lesen
 Else
 Print "Diesen Sensor nicht gefunden!"
 End If

 Temp = Sensordaten(1)
 If Sensordaten(2) > 0 Then 'Minus Temperatur
 Temp = 256 - Temp
 Temp = Temp * 10
 Temp = Temp / 2
 Temp = 0 - Temp 'Vorzeichen -
 Else
 Temp = Temp * 10
 Temp = Temp / 2
 End If
 S = Str(temp)
 Print
 Print Format(s , "0.0") ; " Grad C"
 Crc = Crc8(sensordaten(1) , 8)
 If Crc <> Sensordaten(9) Then Print "Daten fehlerhaft gelesen (CRC-Fehler)!"
End Sub

Auch dieses Programm ist unter den oberen Downloads zu finden.

Ich denke das Programm erläutert sich von selbst. Wenn Sie noch mehr Infos benötigen, dann schauen Sie auch mal auf folgend Seite: http://www.rn-wissen.de/index.php/Bascom_und_1-Wire

Die Ausgabe sieht so aus:

Mit Mikrocontroller Temperatur messen und anzeigen

 

Programmieren des Funkmodules RFM12B

RFM12b Universelles FunkmodulRN-MikroFunk lässt sich auf der Unterseite mit einem Funkmodul vom Typ RFM12b oder RFM12 bestücken. Dieses Funkmodul ist recht weit verbreitet und im Internet gibt es jede Menge Informationen und Programme die sie verwenden können. Auch die Programme unseres Schwestermoduls RN-AvrUniversal können fast ohne Änderung übernommen werden. Zudem ist RN-AVR Universal dann auch funkkompatibel zu RN-MikroFunk.

Wie das Funkmodul programmiert wird haben wir ja schon ein wenig im Artikel zu RN-AVR Universal erläutert. Wir haben uns entschlossen dies in Bezug auf RN-MikroFunk  noch etwas ausführlicher in einem separaten zweiten Artikel zu erläutern, weil das sonst hier den Rahmen sprengt!

Zum Teil2 hier: Programmierung des Funkmoduls RFM12b

Autor des Projektes danken <Klick hier>

Falls dir das Projekt gefallen hat und du einen Nutzen davon hattest, kannst du den Autor durch einen freiwilligen Beitrag Danke sagen bzw. für weitere Projekte motivieren! Der Betrag geht zu 100% an den Entwickler der Schaltung! Den Betrag bestimmen Sie selbst:




 

Weblinks zum Thema

Bezugsquelle

HOPERF Funkmodul RFM12B-868-S Sende-/Empfangsmodul
HOPERF Funkmodul RFM12B-868-S Sende-/Empfangsmodul*
FSK-Modulation im 868 MHz-Band; Integrierte SPI-Schnittstelle; Hohe Datenrate bis zu 115,2 kbps
Delock 88877 ISM SMA Omni Star Antenne mit Standfuß 433 MHz, 3 dBi schwarz
Delock 88877 ISM SMA Omni Star Antenne mit Standfuß 433 MHz, 3 dBi schwarz*
Impedanz: 50 Ohm; Antennengewinn: 3 dBi; Frequenzbereich: 433 MHz
17,91 EUR
10pcs LAOMAO 433MHz Antenne Helical-Antenne Fernbedienung für Arduino Raspberry Pi
10pcs LAOMAO 433MHz Antenne Helical-Antenne Fernbedienung für Arduino Raspberry Pi*
Frequency Range(MHz)£º433MHz+/-6MHz; Length(mm)£º26+/-1(Including welding part length)
5,99 EUR Amazon Prime

Letzte Aktualisierung am 2024-12-08 / * Affiliate Links 

Geeignete Programmer für die Programmierung

Letzte Aktualisierung am 2024-12-08 / * Affiliate Links 

Weitere Hinweise

Vor dem Aufbau bitte nachfolgende Hinweise lesen:
Das Projekt unterliegt einer CC-Lizenz - Lizenzhinweis (zum Aufklappen anklicken)
Um ihnen weitgehende Möglichkeiten zum Nutzen der Schaltung einzuräumen, wurde dieses Projekt jetzt unter die CC-Lizenz gestellt. Sie haben So die Möglichkeit die Schaltung beliebig zu verändern oder weiterzugeben. Lediglich die kommerzielle Weitergaben ist nur mit Genehmigung möglich! Genauere Hinweise finden Sie im Lizenztext. Bei einer Veröffentlichung oder Weitergabe ist nachfolgender Text sichtbar zu übernehmen:
cc_logo310

Falls Dir der Beitrag gefallen oder geholfen hat kannst Du dem Autor aber gerne durch eine kleine Spende Danke sagen!

Projekt (Schaltung & Projektdateien) von Frank ist lizenziert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz. Über diese Lizenz hinausgehende Erlaubnisse können Sie unter https://www.mikrocontroller-elektronik.de/ erhalten. Lizenziert wurde das Projekt von: www.Roboternetz.de & www.Mikrocontroller-Elektronik.de  -  Autor/User Frank Dieser Name und diese Webseiten sind bei der Weitergabe stets deutlich sichtbar zu nennen!
Achtung: Es kann keinerlei Garantie für die Fehlerfreiheit der Schaltung oder anderer Projektdateien übernommen werden! Der Nachbau und Betrieb geschieht auf eigene Gefahr! Jegliche Haftung für Schäden oder Verletzungen wird ausgeschlossen! Schadensersatzansprüche, gleich aus welchem Rechtsgrund, sind ausgeschlossen.
Sicherheitshinweise und Haftungsausschluss (zum Aufklappen anklicken)
Dieses Projekt dient vornehmlich für Lehrzwecke und zum Experimentieren. Für den Aufbau sollten ausreichend Elektronik Grundkenntnisse und Kenntnisse bezüglich der Sicherheit (Experimentieren mit Strom und Handhabung gängiger Werkzeuge wie Lötkolben etc.) vorhanden sein. Unter dem Menüpunkt Buchvorstellungen als auch auf der Seite RN-Wissen.de empfehle ich diesbezüglich noch interessante Literatur mit der man sich dies erarbeiten kann. Für Fragen bezüglich Elektronik und Mikrocontroller empfehle ich das Forum: Roboternetz.de Sicherheitshinweise und Haftungsausschluss

9 Kommentare zu “RN-MikroFunk – Mini AVR Microcontroller Modul mit Funkmodul”

  1. Klaus I. sagt:

    Super Platine vielen Dank. Erste Versuche mit RFM69CW laufen gut (R2 beim RFM69CW habe ich weggelassen, der Pullup R8 ist aber sinnvoll – Leider ist das RFM69CW-Datenblatt da etwas unklar).

    Zum Temperatursensor:
    Vielleicht sollte man den DS18B20 in Erwägung ziehen. Der DS18S20 ist inwzischen bei Reichelt etwas teurer und soll auch etwas komplizierter beim Auslesen sein. Eigene Versuche stehen aber noch aus, ich warte auf Lieferung.

    1. Frank sagt:

      Danke, auch für den Tipp mit dem alternativen Funkmodul RFM69CW

      1. Klaus I. sagt:

        Lieber Frank,
        ich habe Dir zu danken für die Arbeit, die Du Dir hier gemacht hast. Die Platine und Deine Dokumentation ist wirklich eine super Sache.

        Einen kleinen Fehler habe ich vermutlich in den Eagle-Dateien gefunden. Leider kenne ich mich da noch deutlich zu wenig aus. Pin 12 (zwischen One-Wire und PB0) wird mit 3,3V beschriftet, aber soweit ich sehe sollte es eigentlich GND sein.

        Inzwischen habe ich 6 Platinen mit unterschiedlicher Bestückung zum Experimentieren aufgebaut und alle funktionieren tadellos. Ohne Deinen Entwurf und die veröffentlichen Dateien wäre ich nie soweit mit den Funkmodulen gekommen.

        Eine Platine davon ist jetzt mit einem DS18B20 ausgestattet und die Auswertung ist wirklich deutlich unkomplizierter mit diesem Sensor.

        Herzlichen Dank nochmal für Deine Arbeit.

        Grüße
        Klaus

        1. Frank sagt:

          Hi Klaus, danke für das positive Feedback und den Hinweis. Du hast recht, Pin 12 ist auf der Platine falsch beschriftet, dort liegt GND und nicht +3,3V an! Hatte ich noch gar nicht bemerkt obwohl ich Platine oft verwendet habe. Ich werde mal gleich einen Hinweis im Text einbauen. Erst mal ein schönen Sonntag, hier regnet es allerdings mal wieder
          Gruß Frank

  2. Martin sagt:

    Kleine Nebenfrage: Welches Flußmittel nimmst Du zu SMD-Löten?

    1. Frank sagt:

      Zuletzt hatte ich glaube Interflux Flussmittel 6000*. Aber es gibt sicher viele ähnliche die genauso gut sind.

    2. Klaus I. sagt:

      Ich verwende Kolophonium (z.B. von Pollin) aufgelöst in Ethanol (nicht Spiritus) oder Isopropanol. 30 g vom Kolophonium zermahle ich und gebe dazu 100 mL vom Lösemittel in eine Glasflasche. Bisher habe ich das immer kurz ins Ultraschallbad gestellt, dass löst sich aber auch so auf, dauert halt etwas länger.

      Bitte nicht wundern, wenn ein paar Krümel übrig bleiben oder nach ein paar Tagen wieder ausfallen. Das scheint normal zu sein und schadet nicht.

      Zum Auftragen nehme ich meistens eine 1-mL-Einweg-Spritze mit Kanüle. Erstaunlicherweise verklebt da nichts in der Spritze/Kanüle und die kann über Monate hinweg voll gelagert werden.

      Habe auch schon Berichte gelesen, die reines Baumharz anstatt Kolophonium verwenden. Bitte jetzt keine Bäume anritzen sondern lieber eine Stunde länger im Wald spazieren gehen ;o)
      Das wird sicherlich auch funktionieren. Allerdings würde ich das überschüssige Flußmittel nach dem Löten so oder so entfernen: Ich gebe etwas Isopropanol in eine passende wannenförmige Plastikverpackung und bade die Platine für ein paar Stunden.

  3. Fred Schmidt sagt:

    Hallo,
    ich finde das Modul wegen seiner grösse ganz interressant, ich wollte für meine Smarthomeanwendung das Modul + dem Ultraschallsensor SRF02 für eine Fahrzeugerkennung innerhalb einer Garage verwenden. Idee ist es das Gesamtmodul an die Decke zu hängen und hier das eine Garagenbelegung zu erkennen!
    Wäre das mit den beiden Modulen machbar?

    1. Frank sagt:

      Wüsste nicht was dagegen spricht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

scroll to top