Arduino – Pin Change Interrupt

Standardmäßig stellt der Arduino UNO mit der Funktion „attachInterrupt()“ nur 2 Interrupt-Pins (Pin 2 und 3) zu Verfügung. Durch entsprechende Registerprogrammierung kann jedoch durch jeden Ein-/Ausgangspin ein „Pin Change Interrupt“ ausgelöst werden.

Wie der Name „Pin Change Interrupt“ bereits sagt, wird bei jeder Zustandsänderung eines Eingangssignals, also sowohl bei steigender als auch bei fallender Flanke ein Interrupt ausgelöst. Die Auswertung, welche Flanke den Interrupt ausgelöst hat, bzw. falls mehr als ein Pin Change Interrupt pro Port programmiert wurde, welcher Pin einen Interrupt ausgelöst hat, muss in der „Interrupt-Serviceroutine“ erfolgen.

Verwendete Register:
PCICR = Pin Change Interrupt Register
PCMSKx = Pin Change Mask Register x (0 / 1 / 2)
SREG = Statusregister

Vorgehensweise:
1. Alle Interrupts sperren
2. Port für Interrupt freischalten
3. Pin(s) für Pin Change Interrupt freigeben
4. Alle Interrupts freigeben
5. Interrupt-Serviceroutine

1. Alle Interrupts sperren
Während der Manipulation der Interruptregister sollte kein Interrupt ausgelöst werden. Durch löschen des Global Interrupt Enable Bits (I) im Status Register (SREG) werden alle Interrupts gesperrt

Bit 7 6 5 4 3 2 1 0
I T H S V N Z C
SREG – Status Register
// Löschen des Global Interrupt Enable Bits (I) im Status Register (SREG)
   cli(); // alle Interrupts sperren

// Setzen des Global Interrupt Enable Bits (I) im Status Register (SREG)
   // sei(); // alle Interrupts zulassen
   // oder
   SREG |= 0x80; // alle Interrupts zulassen

 2. Port für Interrupt freischalten

Im Pin Change Interrupt Control Register (PCICR) wird festgelegt welcher Ports für einen Pin Change Interrupt zugelassen werden. Den Ports sind bestimmte Pins zugeordnet.

Bit 7 6 5 4 3 2 1 0
 PCICR PCIE2 PCIE1 PCIE0
Pin D0 – D7 A0 – A5 D8 – D13
Port D C B
PCICR – Pin Change Interrupt Control Register

In Abhängigkeit für welche Pins ein Interrupt ausgelöst werden soll, ist das entsprechende Pin Change Interrupt Enable Bit (PCIEx) zu setzen.

// Setzen des PCIE2-Bit im Pin Change Interrupt Control Register (PCICR)
   PCICR |= (1 << PCIE2);

// Zurücksetzen / löschen des PCIE2-Bit im Pin Change Interrupt Control Register (PCICR)

// Abfragen

3. Pin(s) für Pin Change Interrupt freigeben
Durch setzen des Pin Change Enable Mask Bit (PCINTx) im entsprechenden Pin Change Enable Mask Register (PCMSKx) wird die Auslösung eines Interrupt ermöglicht.

Bit 7 6 5 4 3 2 1 0
 PCMSK0 PCINT7 PCINT6 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0
PIN D13 D12 D11 D10 D9 D8
Port B
PCMSK0 – Pin Change Mask Register 0
Bit 7 6 5 4 3 2 1 0
 PCMSK1  PCINT14 PCINT13 PCINT12 PCINT11 PCINT10 PCINT9 PCINT8
PIN A5 A4 A3 A2 A1 A0
Port C
PCMSK1 – Pin Change Mask Register 1
Bit 7 6 5 4 3 2 1 0
 PCMSK2 PCINT23 PCINT22 PCINT21 PCINT20 PCINT19 PCINT18 PCINT17 PCINT16
PIN D7 D6 D5 D4 D3 D2 D1 D0
Port D
PCMSK2 – Pin Change Mask Register 2
//Setzen des Pin Change Enable Mask Bit 18 (PCINT18)  ==> Digital-Pin D2
  PCMSK2 |= (1 << PCINT18);

// Zurücksetzen / löschen

// Abfragen

4. Alle Interrupts freigeben
Durch setzen des Global Interrupt Enable Bits (I) im Status Register (SREG) werden alle Interrupts freigegeben. Siehe 1. Alle Interrupts sperren.

5. Interrupt Serviceroutine
Wird ein Pin Change Interrupt ausgelöst, verzweigt das Programm in die entsprechende Serviceroutine. Die Namen der Interrupt-Serviceroutinen sind vom System fest vorgegeben und können nicht ohne weiteres verändert werden.

Pin Change Interrupt PCMSK0 -> Serviceroutine ISR(PCINT0_vect)
Pin Change Interrupt PCMSK1 -> Serviceroutine ISR(PCINT1_vect)
Pin Change Interrupt PCMSK2 -> Serviceroutine ISR(PCINT2_vect)

ISR = Interrupt Service Routine

Beispeilcode
Als Beispiel soll der Pin Change Interrupt am Digital-Pin D2 ausgelöst werden:

void setup(){
  //Löschen des Global Interrupt Enable Bits (I) im Status Register (SREG)
  cli();

  //Setzen des PCIE2-Bit im Pin Change Interrupt Control Register (PCICR)
  PCICR |= (1 << PCIE2);

  //Setzen des Pin Change Enable Mask Bit 18 (PCINT18)  ==> Digital-Pin 2
  PCMSK2 |= (1 << PCINT18);

  //Setzen des Global Interrupt Enable Bits (I) im Status Register (SREG)
  SREG |= 0x80; // gleichwertig mit "sei();"
}

...

//Aufruf der Interrupt Serviceroutine
ISR(PCINT2_vect){
  //Programmcode der Service-Routine
}


Quellen:
arduino-projekte.webnode.at
ATmega328/P Datenblatt

 

DALI Master / Slave

Aufbau eines DALI-Master / Slave

 

Arduino

Simple DALI Controller
DALI Interface für AVR und PIC 

Dali Click
https://www.mikroe.com/dali-click

Belegung auf der Bestückten Seite

NC ICP
TX INT (RX)
PHY NC
NC NC
NC NC
NC NC
3.3V 5V
GND GND

Versuchsbauteile die mir zur Verfügung stehen:

Philips Actilume Controller LCC 1653/01

Tridonic LCA 75W 100-400mA one4all Ip PRE ArtNr.:28000657
Tridonic LCA 35W 24V one4all SC PRE ArtNr.: 28001662

MDT SCN-DALI64.02 Dali-KNX Gateway

MW LCM-25DA mit LED Leuchte

3D Drucker – Heizbett

MK2B PCB Heizbett 214x214mm

Das bewährte MK2 Leiterplattendesign gewährleistet eine gleichmäßige Wärmeverteilung. Das PCB Heizbett besitzt eine 200x200mm Druckfläche und ist sehr einfach zu installieren. Es lässt sich auf bis 115 °C erhitzen und kann mit 12V oder 24V versorgt werden. Zum Drucken von ABS wird zwingend ein beheiztes Druckbett benötigt um erfolgreiche Drucke zu erzielen, für PLA ist es allerdings auch von Vorteil.

Die ersten Schichten eines Drucks sind mit entscheidend für ein erfolgreiches Druckergebnis! Löst sich die erste Schicht kann es zu starken Verziehen des Materials und schlimmsten Falls löst sich das halbfertige Objekt von der Druckplatte und lässt den Druck komplett fehlschlagen.

Auf PCB Heizbetten kann in der Regel nicht direkt gedruckt werden, zum Andruck empfiehlt sich eine 3 mm Aluminium- oder Glasplatte. Wenn man direkt auf das Heizbett drucken möchte, empfehlen wir das MK3 Heizbett, welches eine 3 mm Aluminiumplatte besitzt, die sich beim Aufheizen weniger verziehen kann.

2-Lagen-Leiterplatte mit 0,35 um Kupferauflage
Abmessungen: 214×214 mm
Widerstand: ca. 1,0-1,3 Ohm
Stromaufnahme: 12V oder 24 V
Temperatur: max. 115°C
Beidseitige Soldermask und Beschriftung
Mittenloch für Temperatursensor
Betriebsbereitschaftsanzeige mittels LED
Farbe: Rot

MK3 Heizbett

MK3 Heizbett (rot) Anschlussfertig

MK3 Heizbett

Das MK3 Heizbett kann wie das MK2 mit 12V oder 24V betrieben werden. Durch die 24V Option lässt es sich deutlich schneller auf 100 °C heizen, als mit 12V. Es besitzt einen ähnlichen Funktionsumfang wie das MK2, bietet jedoch ein paar Vorteile. So besteht die Oberseite des MK3 Heizbett aus einer dicken Aluminiumplatte die eine gleichmäßige Hitzeverteilung gewährleistet und sich beim Aufheizen nicht mehr verziehen kann.
Man benötigt keine Glasplatte und kann direkt auf das Heizbett drucken, dies ist bei schnelleren Drucken von Vorteil, da das MK3 Heizbett leichter ist als ein PCB Heizbett + Glasplatte.
Zur Befestigung besitzt das Heizbett 4 Bohrungen an den Ecken und eine Bohrung in der Mitte. Das Montageloch in der Mitte erlaubt die Montage mit nur 3 Punkten, welches das angleichen des Abstands erleichtert.

Dieses Heizbett hat alle benötigten Anschlusskabel, Thermistor, LEDs und Widerstände bereits angelötet und ist somit anschlussfertig!

Abmessungen

Das Bett hat eine Kantenlänge von 214×214 mm.
Druckfläche 200x200mm

HolzWerken – Handbuch Oberfräse

Titel: Handbuch Oberfräse
Auswählen, bedienen, beherrschen
Serie:  Werkstattwissen für Holzwerker
Autor: Guido Henn
Verlag: Vincentz Network GmbH & Co. KG
ISBN: 978-3-86630-949-4
Status: vorhanden

Alles, was man über die Oberfräse wissen muss! Schritt für Schritt erklärt Guido Henn alles Wesentliche zu Modellen, Typen und Fräsern, zu Bedienung und Wartung. Es folgen fundierte Anleitungen zum praktischen Arbeiten mit vielen Beispielen. Auf der beiliegenden DVD zeigt Guido Henn anschaulich und detailliert die Arbeit mit den selbstgebauten Vorrichtungen und Schablonen.

Das Beste aus zwei Welten: Während man den Bau dieser Vorrichtungen am besten in gedruckter Form darstellen kann, mit Bauplänen und textlichen Erläuterungen, ist die Vorführung der Arbeitsweise am besten per Film möglich. Diese Buch-/DVD-Kombi bietet beides – Ihren persönlichen Intensivkurs Oberfräse!

HolzWerken – Möbelbau

HolzWerken Möbelbau
Titel: Möbelbau
Grundlagen, Konstruktionen, Tips und Kniffe
Serie: Werkstattwissen für Holzwerker
Autor: Andy Rae
Verlag: Vincentz Network GmbH & Co. KG
ISBN: 978-3-86630-962-3
Status: vorhanden

Das führende Möbelbau-Buch – jetzt auf Deutsch!

Der Autor hält sich nicht allzu lange bei Ausführungen über Material und Werkzeug auf, dafür ist der Rest dann umso ausführlicher. Von der grundlegenden Konstruktion von Schränken und Kästen geht es über Regale, Schubladen, Türen, Böden, Füße, Beine, Stühle, Blendrahmen, Eckschränke, Füllungen, Tischplatten und Hinterwände durch wirklich alle Bereiche des Möbelbaus. Dazu erläutert Andy Rae in Text und Bild den Zusammenbau dieser Teile und geht auch ausführlich auf Beschläge und Verbindungen ein. Alles detailliert in Schritt-für-Schritt-Anleitungen, in Bild und Text.

Mit insgesamt 23 Kapiteln ist das Buch sehr fein gegliedert, was das Auffinden einzelner Erläuterungen erleichtert. Dazu hat jedes Kapitel ein eigenes Inhaltsverzeichnis und es gibt ein detailliertes Register.

3D Drucker – ABS Filament

3D Drucker PLA 1.75mm / 3mm Printer Filament -Mit Spule 1.0kg/0.5kg

PLA:   Polymilchsäure bzw. Polylactid (PLA, Poly) ist eine  biologisch abbaubare thermoplastische aliphatische Polyester aus nachwachsenden  Rohstoffen, wie beispielsweise Maisstärke, Tapioka Wurzeln, Chips oder Stärke  oder Zuckerrohr abgeleiteten. Im Jahr 2010 hatte PLA die zweithöchste  Verbrauchsmenge aller Biokunststoff der Welt.

Diese Ware is ein 3D Filament zum  Einsetzen in Apparate des 3D Druckers. PLA Filament für 3D Drucker (Polyactide)  ist synthetisches Polymer, welches zu Polyestern gehört. PLA Filament ist das  beliebteste Druckmaterial für 3D Drucker.

Chemische Zusammensetzung von PLA  Filament

PLA Filament gehört (wie auch z.B.  Polyester) zu den synthetischen Polymeren. Auf Molekularbasis betrachtet: „Eine  chemische Binding aus Milchäuremolekülen.“Aus PLA können unter Hitzezufuhr  thermoplastische Kunststoffe produziert werden – das PLA Filament wie wir es  heute kennen und mit dem 3D Drucker verarbeiten.

Verwendung von PLA

Die Liste der positiven Eigenschaften  von PLA ist lang, daher wurde das Poliactid auch schon vor der Revolution der 3D  Drucker sehr vielseitig eingesetzt. PLA besitzt eine geringe  Feuchtigkeitsaufnahme und wird schon lang in der Sportindustrie für die  Produktion von Funktionskleidung eingesetzt. Die schwere Entflammbarkeit und  eine hohe UV-Beständigkeit sind ideal für Anwendungen im Möbelbereich. Dank der  geringen Dichte von PLA, kennt man den Kunststoff im Modellbau schon lang. Hier  wird das leichte Gewicht des Kunststoffs sehr geschätzt.

ABS:   ABS (Acryl-Butadien-Styrol) ist ein häufig verwendeter  Kunststoff zum Beispiel, und ist in der Herstellung von Lego verwendet. Dieser  Kunststoff ist sehr haltbar, hitzebeständig und ideal für die Herstellung von  Funktionsteilen.

PLA- composite ist die aufgerüstete Version von PLA, es verwendet das 90% abbaubare PLA-Material, kann abgebaut werden. Es ist ähnlich wie Seide oder Perlen Material, aber es gibt einen kleinen Unterschied mit Seide Material in der Tat.

PLA- composite druckt viel heller, es erhöht die Zähne des Drahtes, so dass es nicht leicht zu brechen und die Haftung zwischen Schicht und Schicht zu stärken. Sie können ohne Beschädigung des bedruckten Fertigprodukts bohren oder schrauben.

Zur gleichen Zeit, wenn Sie fertig zu drucken, kann es einfacher entfernt werden als reine PLA.

Feature:

PLA
Filamentmaterial: PLA
Drahtstärke:1,75 mm
Drucktemperatur: 200-230ºC
Betttemperatur: 40-50ºC
Spulendurchmesser: 20 cm
Spulenbreite: 5.8cm

ABS

ABS – Filament

Filament Material:  ABS
Drucktemperatur:  240-260ºC
Betttemperatur:  90-110ºC
Spulendurchmesser:  15,9 cm
Spulenbreite: 8.7cm
Spulennabenloch:  4,9cm

 

 

 

 

 

Flexible PLA
Filament  Material: Flexible PLA
PLA Print Temperatur: 210-230 ° C
Bett-Temperatur: 40-50 ° C
Spool: Dick Spool
Spool-Durchmesser: 20 cm
Spool Breite: 5,8 cm
Spool Hub Hole: 5.3cm

PLA Composite
Filamentmaterial: PLA Verbundwerkstoff
Drucktemperatur: 200-230ºC
Betttemperatur: 40-50 ° C
Spulendurchmesser: 20 cm
Spulenbreite: 5.8cm
Spulennabenloch: 5.3cm
Druckgeschwindigkeit 30 mm / s (Vorschlag)
Nettogewicht : 1 KG/0.5KG
Prüfbericht: MSDS, FDA, ROHS, EN71-19, 17PHTHALATE, REACH

PETG:
PETG ist ein nicht-kristalliner Copolyester. Mit der Zunahme von CHDM in dem  Copolymer nimmt der Schmelzpunkt ab, die Glasübergangstemperatur steigt an, die  Kristallinität nimmt ab und schließlich wird das amorphe Polymer gebildet. Es  hat eine gute Viskosität, Transparenz, Farbe, chemische Beständigkeit und  Beständigkeit gegen Weißbruch. Es kann schnell thermogeformt oder extrudiert  werden.

PETG filament hat hervorragende zähigkeit und hohe schlagzähigkeit, die  schlagzähigkeit ist modifiziertes polyacrylat 3-10 mal, und hat eine breite  bearbeitungsbereich, hohe mechanische festigkeit und ausgezeichnete  flexibilität, im vergleich zu PVC transparenz Hoch, glänzend, leicht zu drucken  und haben umweltvorteile .. Es ist mit hoher Transparenz, guter  Lichtdurchlässigkeit, gutem Glanz, guter Zähigkeit, Säure- und  Alkalibeständigkeit.

Eigenschaften:
Typ: PETG Filament
Filamentmaterial: PETG
PLA Drucktemperatur: 230-250 ° C
Betttemperatur: 80-100 ° C
Filamentdurchmesser Toleranzen: ± 0.02mm
Rundheit: ± 0,02mm
Nettogewicht: 1kg
Spulentyp: Große Spule
Spulendurchmesser: 20cm
Spulenbreite: 5,8 cm
Spool Nabenloch: 5.3cm
Druckgeschwindigkeit 30mm / sec (Vorschlag)

Holz Wood:
Holzfilament ist PLA und Holzmehl-Verbundstoff, es ist mit der Holzstruktur, ob  es Filament ist oder das Modell zu drucken. Das gedruckte Produkt ist in der  Nähe des Massivholz-Effekt, es ist mit Korrosionsbeständigkeit,  Feuchtigkeitsbeständigkeit, Säure und Alkali, nicht schimmelig Charakteristik.

Wenn Sie drucken, wird ein hölzerner Geruch emittiert. und es kann genagelt,  gebohrt, geschnitzt werden. Wenn das Holzfilament in der Düse erhitzt wird,  warten Sie nicht lange. Andernfalls quillt und brennt das Holzmehl, und wenn Sie  genügend Temperatur erhitzt haben, um Ihr Modell sofort zu drucken.

Eigenschaften:
Typ: Holzfaden
Filament Material: Holz und PLA
PLA Drucktemperatur: 210-230 ° C
Betttemperatur: 80-100 ° C
Filamentdurchmesser Toleranzen: ± 0.02mm
Rundheit: ± 0,02mm
Nettogewicht: 1kg
Spulentyp: Große Spule
Spulendurchmesser: 20cm
Spulenbreite: 5,8 cm
Spool Nabenloch: 5.3cm
Druckgeschwindigkeit 30mm / sec (Vorschlag)