Schuh Quellen

This commit is contained in:
Andreas Mieke 2018-03-18 20:43:24 +01:00
parent 76010f8d07
commit 4093cd295f
4 changed files with 88 additions and 16 deletions

View file

@ -24,7 +24,7 @@
columns=fullflexible, columns=fullflexible,
} }
\usepackage{hyperref} \usepackage[hidelinks]{hyperref}
\usepackage[ngerman]{babel} \usepackage[ngerman]{babel}
\usepackage[german]{fancyref} \usepackage[german]{fancyref}
\usepackage{subfig} % Subfigures \usepackage{subfig} % Subfigures

View file

@ -1,4 +1,4 @@
\section{Audioadapter} \section{Audioadapter \cite{da:sps}}
\label{sec:audioadapter} \label{sec:audioadapter}
Der Audioadapter dient zum Einlesen und Ausgeben von analogen Signalen, wobei bei der Diplomarbeit nur das Einlesen benötigt wird. Die eingelesenen Audiosignale, die von zwei Mikrofonen geliefert werden, werden mittels \gls{ADC} in ein digitales Signal umgewandelt und mittels \IIS{}-Protokoll zum \gls{DSP} übertragen, wo sie dann weiterverarbeitet werden können. Der vorherige Audioadapter (Version 2.1) stammt aus der Diplomarbeit \enquote{Universal Mover} von Georg Amstetter \cite{da:umover} aus dem Jahr 2011/12. Dieser Audioadapter wies allerdings einige Probleme auf. Der Audioadapter dient zum Einlesen und Ausgeben von analogen Signalen, wobei bei der Diplomarbeit nur das Einlesen benötigt wird. Die eingelesenen Audiosignale, die von zwei Mikrofonen geliefert werden, werden mittels \gls{ADC} in ein digitales Signal umgewandelt und mittels \IIS{}-Protokoll zum \gls{DSP} übertragen, wo sie dann weiterverarbeitet werden können. Der vorherige Audioadapter (Version 2.1) stammt aus der Diplomarbeit \enquote{Universal Mover} von Georg Amstetter \cite{da:umover} aus dem Jahr 2011/12. Dieser Audioadapter wies allerdings einige Probleme auf.

View file

@ -240,7 +240,7 @@ Als weiter Spannungsversorgungsmöglichkeit bietet die \gls{Basisplatine} die M
\label{fig:basisplatine-dc} \label{fig:basisplatine-dc}
\end{figure} \end{figure}
\subsubsection{RGB-LED Ring} \subsubsection{RGB-LED Ring \cite{basis:ws2812b}}
Auf der \gls{Basisplatine} wurde ein aus zwölf RGB-LEDs bestehender Ring aufgebaut, welcher in den verschiedensten Farben leuchten kann. Jede RGB-LED besitzt einen eigenen eingebauten Controller. Die Ansteuerung der LEDs wird über den Port-Pin PB0 realisiert. Um diesen verwenden zu können muss zuvor die Stiftleiste (\fref{fig:basisplatine-ledring}, X41) mit einem Jumper versehen werden. Weiters muss die Spannungsversorgung der LEDs gewährleistet sein. Dazu muss lediglich die Stiftleiste (\fref{fig:basisplatine-ledring}, X42) mit einem Jumper versehen werden. Auf der \gls{Basisplatine} wurde ein aus zwölf RGB-LEDs bestehender Ring aufgebaut, welcher in den verschiedensten Farben leuchten kann. Jede RGB-LED besitzt einen eigenen eingebauten Controller. Die Ansteuerung der LEDs wird über den Port-Pin PB0 realisiert. Um diesen verwenden zu können muss zuvor die Stiftleiste (\fref{fig:basisplatine-ledring}, X41) mit einem Jumper versehen werden. Weiters muss die Spannungsversorgung der LEDs gewährleistet sein. Dazu muss lediglich die Stiftleiste (\fref{fig:basisplatine-ledring}, X42) mit einem Jumper versehen werden.
\begin{figure}[htb] \begin{figure}[htb]
@ -253,8 +253,8 @@ Auf der \gls{Basisplatine} wurde ein aus zwölf RGB-LEDs bestehender Ring aufgeb
Zur Programmierung der LEDs muss über den Port PB0 ein Datenwort übetragen werden, welches 24 bit pro LED enthält, siehe \fref{fig:basisplatine-ledring-data}. Dies ergibt insgesamt 288 bit, welche übertragen werden müssen. Wie die Übertragung genau aussieht kann aus \fref{fig:basisplatine-ledring-timing} entnommen werden. Zur Programmierung der LEDs muss über den Port PB0 ein Datenwort übetragen werden, welches 24 bit pro LED enthält, siehe \fref{fig:basisplatine-ledring-data}. Dies ergibt insgesamt 288 bit, welche übertragen werden müssen. Wie die Übertragung genau aussieht kann aus \fref{fig:basisplatine-ledring-timing} entnommen werden.
\fig{basisplatine-ledring-data}{RGB-LED Ring Datenstruktur}{RGB-LED Ring Datenstruktur}{\textwidth}{Schuh/Pictures/Basis-ledring-data} \fig{basisplatine-ledring-data}{RGB-LED Ring Datenstruktur}{RGB-LED Ring Datenstruktur \cite{basis:ws2812b}}{\textwidth}{Schuh/Pictures/Basis-ledring-data}
\fig{basisplatine-ledring-timing}{RGB-LED Ring Timing Diagram}{RGB-LED Ring Timing Diagram}{\textwidth}{Schuh/Pictures/Basis-ledring-timing} \fig{basisplatine-ledring-timing}{RGB-LED Ring Timing Diagram}{RGB-LED Ring Timing Diagram \cite{basis:ws2812b}}{\textwidth}{Schuh/Pictures/Basis-ledring-timing}
\subsubsection{Sensor-Selektion} \subsubsection{Sensor-Selektion}
Da der verbaute Prozessor zu wenig Portleitungen besitzt um alle Sensoren und Module mit einer eigenen Portleitung zu versorgen, werden einige Portleitungen mehrmals verwendet. Um nun einzelne Module oder Sensoren verwenden zu können, müssen diese einsprechend gejumpert werden. Eine dieser Stiftleisten ist der Header (\fref{fig:basisplatine-ssel}, X9), welches es ermöglicht zwischen einem Potentiometer (\gls{ADC}), Piezo-Summer, einem LFU, einem Infrarotempfänger, einem Temperaturfühler und einem NE555 auszuwählen. Da der verbaute Prozessor zu wenig Portleitungen besitzt um alle Sensoren und Module mit einer eigenen Portleitung zu versorgen, werden einige Portleitungen mehrmals verwendet. Um nun einzelne Module oder Sensoren verwenden zu können, müssen diese einsprechend gejumpert werden. Eine dieser Stiftleisten ist der Header (\fref{fig:basisplatine-ssel}, X9), welches es ermöglicht zwischen einem Potentiometer (\gls{ADC}), Piezo-Summer, einem LFU, einem Infrarotempfänger, einem Temperaturfühler und einem NE555 auszuwählen.
@ -357,9 +357,7 @@ Der auf der \gls{Basisplatine} realisierte LFU (Licht-Frequenz-Wandler), wandelt
\fig{basisplatine-lfu-freq}{Frequenzgang des LFUs}{Frequenzgang des LFUs}{0.5\textwidth}{Schuh/Pictures/Basis-lfu-freq} \fig{basisplatine-lfu-freq}{Frequenzgang des LFUs}{Frequenzgang des LFUs}{0.5\textwidth}{Schuh/Pictures/Basis-lfu-freq}
\subsubsection{RGB-LED} \subsubsection{RGB-LED}
Der auf der \gls{Basisplatine} realisierte LFU (Licht-Frequenz-Wandler), wandeltet wie der Name bereits sagt Licht in eine bestimmte Frequenz um. Je höher die Bestrahlungsstärke des Lichts, desto höher wird die über den Output des LFUs ausgegebene Frequenz. Den linearen Zusammenhang zwischen der Bestrahlungsstärke und der ausgegebenen Frequenz kann aus \fref{fig:basisplatine-lfu-freq} entnommen werden.\todo{Quelle?} Um den LFU verwenden zu können muss lediglich der Pin5 mit dem Pin6, der Stiftleiste (\fref{fig:basisplatine-ssel}, X9), gejumpert werden. Auf der Hardware der \gls{Basisplatine} wurde eine RGB-LED \cite{basis:rgbled} verbaut, welche mit Hilfe des LED-Divers (\fref{fig:basisplatine-rgbled}, D4) \cite{basis:rgbdriver}, welcher mit dem \IIC{}-Bus angesteuert werden kann. Dieser LED-Driver hat den Vorteil, dass er eine interne Stromüberwachung besitzt. Dadurch benötigen die einzelnen Anoden der RGB-LED keine Vorwiderstände, da sich der Strom automatisch entsprechend der gewünschten Farbe reguliert.
Auf der Hardware der \gls{Basisplatine} wurde eine RGB-LED verbaut, welche mit Hilfe des LED-Divers (\fref{fig:basisplatine-rgbled}, D4), welcher mit dem \IIC{}-Bus angesteuert werden kann. Dieser LED-Driver hat den Vorteil, dass er eine interne Stromüberwachung besitzt. Dadurch benötigen die einzelnen Anoden der RGB-LED keine Vorwiderstände, da sich der Strom automatisch entsprechend der gewünschten Farbe reguliert.
\begin{figure}[htb] \begin{figure}[htb]
\centering \centering
@ -368,9 +366,9 @@ Auf der Hardware der \gls{Basisplatine} wurde eine RGB-LED verbaut, welche mit H
\caption[RGB-LED der Basisplatine]{RGB-LED der \gls{Basisplatine}} \caption[RGB-LED der Basisplatine]{RGB-LED der \gls{Basisplatine}}
\label{fig:basisplatine-rgbled} \label{fig:basisplatine-rgbled}
\end{figure} \end{figure}
\fig{basisplatine-rgbled-befehl}{Befehlsaufbau der RGB-LED}{Befehlsaufbau der RGB-LED}{\textwidth}{Schuh/Pictures/Basis-rgbled-befehl} \fig{basisplatine-rgbled-befehl}{Befehlsaufbau der RGB-LED}{Befehlsaufbau der RGB-LED \cite{basis:rgbdriver}}{\textwidth}{Schuh/Pictures/Basis-rgbled-befehl}
\fig{basisplatine-rgbled-register}{Register der RGB-LED}{Register der RGB-LED}{\textwidth}{Schuh/Pictures/Basis-rgbled-register} \fig{basisplatine-rgbled-register}{Register der RGB-LED}{Register der RGB-LED \cite{basis:rgbdriver}}{\textwidth}{Schuh/Pictures/Basis-rgbled-register}
\fig{basisplatine-rgbled-seq}{Sequenzen der RGB-LED}{Sequenzen der RGB-LED}{\textwidth}{Schuh/Pictures/Basis-rgbled-seq} \fig{basisplatine-rgbled-seq}{Sequenzen der RGB-LED}{Sequenzen der RGB-LED \cite{basis:rgbdriver}}{\textwidth}{Schuh/Pictures/Basis-rgbled-seq}
\subsubsection{Arduino-Shield-Header} \subsubsection{Arduino-Shield-Header}
Um Hardware des Arduino-Mikrocontrollersystems nutzten zu können, ohne selbst großen Aufwand in die Entwicklung entsprechender Module investieren zu müssen, wurde ein Arduino-Shield-Header auf der \gls{Basisplatine} vorgesehen. Dieser ermöglicht es durch die Portkompatibilität mit einem Arduino, dessen Shields zu verwenden oder selbst Shields entwickeln zu können. Möchte man nun ein Arduino-Shield verwenden muss dieses lediglich in die vorgesehene Buchsenleiste (\fref{fig:basisplatine-arduino}, X33) gesteckt werden. Da jedes Arduino-Shield die Möglichkeit besitzt eine Referenzspannung für diverse ADCs zu vergeben wurde das Potentiometer R31 vorgesehen, um diesen Spannungspegel variabel zu gestallten. Darüber hinaus gibt es noch die Möglichkeit bei speziellen Shields zu definieren mit welcher Betriebsspannung die darüberliegenden versorgt werden sollen. Dazu wurde die Stiftleiste X27 verbaut, um festzulegen ob die darüberliegenden Shields mit \unit{+5}{\volt} oder \unit{+3,3}{\volt} versorgt werden. Sollte kein Jumper gesetzt werden wird automatisch auf die \unit{+5}{\volt} Spannungsversorgung zurückgegriffen. Um Hardware des Arduino-Mikrocontrollersystems nutzten zu können, ohne selbst großen Aufwand in die Entwicklung entsprechender Module investieren zu müssen, wurde ein Arduino-Shield-Header auf der \gls{Basisplatine} vorgesehen. Dieser ermöglicht es durch die Portkompatibilität mit einem Arduino, dessen Shields zu verwenden oder selbst Shields entwickeln zu können. Möchte man nun ein Arduino-Shield verwenden muss dieses lediglich in die vorgesehene Buchsenleiste (\fref{fig:basisplatine-arduino}, X33) gesteckt werden. Da jedes Arduino-Shield die Möglichkeit besitzt eine Referenzspannung für diverse ADCs zu vergeben wurde das Potentiometer R31 vorgesehen, um diesen Spannungspegel variabel zu gestallten. Darüber hinaus gibt es noch die Möglichkeit bei speziellen Shields zu definieren mit welcher Betriebsspannung die darüberliegenden versorgt werden sollen. Dazu wurde die Stiftleiste X27 verbaut, um festzulegen ob die darüberliegenden Shields mit \unit{+5}{\volt} oder \unit{+3,3}{\volt} versorgt werden. Sollte kein Jumper gesetzt werden wird automatisch auf die \unit{+5}{\volt} Spannungsversorgung zurückgegriffen.
@ -383,7 +381,7 @@ Um Hardware des Arduino-Mikrocontrollersystems nutzten zu können, ohne selbst g
\label{fig:basisplatine-arduino} \label{fig:basisplatine-arduino}
\end{figure} \end{figure}
\subsubsection{WLAN-Modul} \subsubsection{WLAN-Modul \cite{basis:wlan}}
Um Daten ohne großen Aufwand direkt in das Heimnetzwerk einspeisen zu können, wurde auf der auf der \gls{Basisplatine} ein Steckplatz (\fref{fig:basisplatine-wlan}, X35) für ein ESP8266 W-LAN Modul vorgesehen. Dieses Funkmodul benutzt zu Kommunikation mit dem Prozessor des Core-Moduls die UART2 Schnittstelle und sendet die Daten mit einer Sendefrequenz von \unit{2,4}{\giga\hertz} im ISM-Band. Wenn man die Firmware des ESP8266 verändern möchte muss man lediglich die Portleitung GPIO0 des ESP8266, durch jumpern der Pin2 und Pin3 der Stiftleiste (\fref{fig:basisplatine-wlan}, X39), gegen Masse schalten. Um Daten ohne großen Aufwand direkt in das Heimnetzwerk einspeisen zu können, wurde auf der auf der \gls{Basisplatine} ein Steckplatz (\fref{fig:basisplatine-wlan}, X35) für ein ESP8266 W-LAN Modul vorgesehen. Dieses Funkmodul benutzt zu Kommunikation mit dem Prozessor des Core-Moduls die UART2 Schnittstelle und sendet die Daten mit einer Sendefrequenz von \unit{2,4}{\giga\hertz} im ISM-Band. Wenn man die Firmware des ESP8266 verändern möchte muss man lediglich die Portleitung GPIO0 des ESP8266, durch jumpern der Pin2 und Pin3 der Stiftleiste (\fref{fig:basisplatine-wlan}, X39), gegen Masse schalten.
\begin{figure}[htb] \begin{figure}[htb]
@ -405,7 +403,7 @@ Um Daten ohne großen Aufwand per Funk übertragen können, wurde auf der auf de
\label{fig:basisplatine-xbee} \label{fig:basisplatine-xbee}
\end{figure} \end{figure}
\subsubsection{HC-06-Modul} \subsubsection{HC-06-Modul \cite{basis:hc06}}
Um Daten ohne großen Aufwand per Bluetooth übertragen können, wurde auf der auf der \gls{Basisplatine} ein Steckplatz (\fref{fig:basisplatine-hc06}, X28) für ein HC-06 Bluetooth-Modul vorgesehen. Dieses Bluetooth-Modul benutzt zur Kommunikation mit dem Prozessor des \gls{Core-Modul}s die UART1 Schnittstelle und sendet die Daten mit einer Sendefrequenz von \unit{2,4}{\giga\hertz} im ISM-Band. Darüber hinaus weist das Bluetooth-Modul eine maximale Datenübertragungsrate von 1382400 baud auf. Um Daten ohne großen Aufwand per Bluetooth übertragen können, wurde auf der auf der \gls{Basisplatine} ein Steckplatz (\fref{fig:basisplatine-hc06}, X28) für ein HC-06 Bluetooth-Modul vorgesehen. Dieses Bluetooth-Modul benutzt zur Kommunikation mit dem Prozessor des \gls{Core-Modul}s die UART1 Schnittstelle und sendet die Daten mit einer Sendefrequenz von \unit{2,4}{\giga\hertz} im ISM-Band. Darüber hinaus weist das Bluetooth-Modul eine maximale Datenübertragungsrate von 1382400 baud auf.
\begin{figure}[htb] \begin{figure}[htb]
@ -416,7 +414,7 @@ Um Daten ohne großen Aufwand per Bluetooth übertragen können, wurde auf der a
\label{fig:basisplatine-hc06} \label{fig:basisplatine-hc06}
\end{figure} \end{figure}
\subsubsection{HC-12-Modul} \subsubsection{HC-12-Modul \cite{basis:hc12}}
Um Daten ohne großen Aufwand per Bluetooth übertragen können, wurde auf der auf der \gls{Basisplatine} ein Steckplatz (\fref{fig:basisplatine-hc12}, X31) für ein HC-12 Funkmodul vorgesehen. Dieses Funkmodul benutzt zu Kommunikation mit dem Prozessor des \gls{Core-Modul}s die UART1 Schnittstelle und sendet die Daten mit einer Sendefrequenz von \unit{433,4}{\mega\hertz} bis \unit{473,0}{\mega\hertz} im ISM-Band. Darüber hinaus weist das Funkmodul eine maximale Datenübertragungsrate von 115200 baud auf und hat eine maximale Reichweite von \unit{1800}{\metre}. Das HC-12 Funkmodul kann mittels AT-Befehlen konfiguriert werden. Dabei kann die maximale Ausgangsleistung, die Sendefrequenz und die maximale Datenübertragungsrate verändert werden. Um Daten ohne großen Aufwand per Bluetooth übertragen können, wurde auf der auf der \gls{Basisplatine} ein Steckplatz (\fref{fig:basisplatine-hc12}, X31) für ein HC-12 Funkmodul vorgesehen. Dieses Funkmodul benutzt zu Kommunikation mit dem Prozessor des \gls{Core-Modul}s die UART1 Schnittstelle und sendet die Daten mit einer Sendefrequenz von \unit{433,4}{\mega\hertz} bis \unit{473,0}{\mega\hertz} im ISM-Band. Darüber hinaus weist das Funkmodul eine maximale Datenübertragungsrate von 115200 baud auf und hat eine maximale Reichweite von \unit{1800}{\metre}. Das HC-12 Funkmodul kann mittels AT-Befehlen konfiguriert werden. Dabei kann die maximale Ausgangsleistung, die Sendefrequenz und die maximale Datenübertragungsrate verändert werden.
\begin{figure}[htb] \begin{figure}[htb]
@ -433,7 +431,7 @@ Um das Modul in den Programming-Mode zu setzen, müssen folgende Schritte ausgef
\item Anschließend muss die Spannungsversorgung unterbrochen werden und der Pin5 (\enquote{SET}) wieder mit Masse verbunden werden. Erst wenn der SET-Pin mit Masse verbunden ist darf das Modul wieder mit Spannung versorgt werden. \item Anschließend muss die Spannungsversorgung unterbrochen werden und der Pin5 (\enquote{SET}) wieder mit Masse verbunden werden. Erst wenn der SET-Pin mit Masse verbunden ist darf das Modul wieder mit Spannung versorgt werden.
\end{itemize} \end{itemize}
\tab{basisplatine-hc12-atbefehlsaufbau}{Aufbau von AT-Befehlen}{Aufbau von AT-Befehlen}{|c|p{10cm}|}{ \tab{basisplatine-hc12-atbefehlsaufbau}{Aufbau von AT-Befehlen}{Aufbau von AT-Befehlen \cite{basis:hc12}}{|c|p{10cm}|}{
\hline \hline
\textbf{Befehl} & \textbf{Funktion}\\ \textbf{Befehl} & \textbf{Funktion}\\
\hline \hline
@ -454,7 +452,7 @@ Um das Modul in den Programming-Mode zu setzen, müssen folgende Schritte ausgef
AT-V & Mit diesem Befehl kann die aktuelle Firmwareversion des Funkmoduls abgefragt werden.\\ AT-V & Mit diesem Befehl kann die aktuelle Firmwareversion des Funkmoduls abgefragt werden.\\
\hline \hline
} }
\tabpdf{basisplatine-hc12-at}{HC-12 AT-Befehlsparameter}{Übersicht über die HC-12 AT-Befehlsparameter}{\textwidth}{Schuh/Pictures/Basis-hc12-at} \tabpdf{basisplatine-hc12-at}{HC-12 AT-Befehlsparameter}{Übersicht über die HC-12 AT-Befehlsparameter \cite{basis:hc12}}{\textwidth}{Schuh/Pictures/Basis-hc12-at}
Um das Funkmodul auf Werkseinstellungen zurückzusetzen muss der AT-Befehl \enquote{AT+DEFAULT} eingegeben werden. Sollte der Befehl korrekt an das Funkmodul weitergegeben worden sein antwortet dieses mit \enquote{OK+DEFAULT}. Um die Firmware des Funkmoduls zu updaten muss der AT-Befehl \enquote{AT+UPDATE} eingegeben werden. Um das Funkmodul auf Werkseinstellungen zurückzusetzen muss der AT-Befehl \enquote{AT+DEFAULT} eingegeben werden. Sollte der Befehl korrekt an das Funkmodul weitergegeben worden sein antwortet dieses mit \enquote{OK+DEFAULT}. Um die Firmware des Funkmoduls zu updaten muss der AT-Befehl \enquote{AT+UPDATE} eingegeben werden.

View file

@ -283,4 +283,78 @@
author = "Resel, Manfred", author = "Resel, Manfred",
month = "9", month = "9",
year = "2014" year = "2014"
}
@thesis{ da:sps,
author = "Baumhackl, David and Uhl, Sebastian",
title = "Spotlight Positioning System",
year = "2016",
month = "3",
url = "https://netstorage.htl-hl.ac.at/oneNet/NetStorage/DriveG%40TIDATA/_ARCHIV_201516/DA_SpotlightPositioningSystem/Dokumentation/DA-Dokumentation/Doku_SpotlightPositioningSystem_V8.2_gesamt.pdf",
urldate = "2018-03-18",
institution = "HTBL Hollabrunn",
type = "Diplomarbeit",
pagetotal = "135"
}
@manual{ basis:wlan,
organization = "espressif",
title = "Datasheet",
number = "ESP8266EX",
year = "2008",
note = "Version 5.8",
url = "https://www.espressif.com/sites/default/files/documentation/0a-esp8266ex_datasheet_en.pdf",
urldate = "2018-03-18"
}
@manual{ basis:hc06,
organization = "Guangzhou HC Information Technology Co., Ltd.",
title = "Product Data Sheet",
number = "HC-06",
year = "2006",
month = "9",
note = "Rev. 2.0",
url = "https://www.olimex.com/Products/Components/RF/BLUETOOTH-SERIAL-HC-06/resources/hc06.pdf",
urldate = "2018-03-18"
}
@manual{ basis:hc12,
organization = "",
title = "HC-12 WIRELESS RF UART COMMUNICATION MODULE V2.4 USER MANUAL",
number = "HC-12",
year = "2016",
month = "12",
note = "V2.4",
url = "http://statics3.seeedstudio.com/assets/file/bazaar/product/HC-12_english_datasheets.pdf",
urldate = "2018-03-18"
}
@manual{ basis:ws2812b,
organization = "WORLDSEMI CO., LIMITED",
title = "Intelligent control LED integrated light source",
number = "WS2812B",
url = "http://www.seeedstudio.com/document/pdf/WS2812B%20Datasheet.pdf",
urldate = "2018-03-18"
}
@manual{ basis:rgbled,
organization = "OSRAM Opto Semiconductors GmbH",
title = "MULTILED Enhanced optical Power LED (ThinFilm / ThinGaN)",
number = "LTRB GFSF",
year = "2014",
month = "8",
note = "Rev. 2014-08-26",
url = "https://docs-emea.rs-online.com/webdocs/0e24/0900766b80e24286.pdf",
urldate = "2018-03-18"
}
@manual{ basis:rgbdriver,
organization = " Semiconductor Components Industries, LLC",
title = "Triple Output I2C Controlled RGB LED Driver",
number = "NCP5623",
year = "2008",
month = "10",
note = "Rev. 6",
url = "https://www.onsemi.com/pub/Collateral/NCP5623-D.PDF",
urldate = "2018-03-18"
} }