Axiohm Model 171A
Intelligent Smart Card/Magstripe® Insert Reader/Writer
The most reliable hybrid insert reader/writer for installation in public kiosk applications. Reads/writes multiple microprocessor and memory cards.
Ideal for Public Terminals
The Model 171A units feature AMC’s vandal-resistant design, spring-loaded guide for optimum magstripe card read, and large debris slot/half-card dropout for jam-proof transactions – making them ideal for public terminals. Optional features – such as conformal coating for condensation protection, card latch and power fail latch release – make them even more robust for public settings.
Cost-effective
For cost-effectiveness, these units combine smart card read/write and magstripe read capabilities for OEM applications requiring both technologies. A smart card only version (no magstripe) is available. Plus, they are engineered to perform at least 500,000 operations. An optional LED indicator is available for user feedback.
Provides Low-Level Communications
This reader/writer provides low-level communications between host and smart card. It is ISO 7816-3 and EMV-compatible (Europay, MasterCard and Visa), and reads/writes microprocessor cards using either T=0 or T=1 protocol, and most memory cards.
Reading Options
The Model 171 is provided with an RS-232 interface. They have single, dual or triple track magstripe read capability (ISO, AAMVA, and custom). The Model 171 readers are also ISO 7816-3 compatible, and are designed to read/write today’s and tomorrow’s microprocessor and memory cards. The ability to add up to five Security Access Module (SAM) chips on an optional PCA is also available.
Don Luc
Topaz IDGem Stand Alone Unit
Topaz: F-P134-USB
The standalone fingerprint sensor features active RF-inductive technology for accurate, reliable scans of subcutaneous skin tissue.
The standalone fingerprint sensor features active RF-inductive technology for accurate, reliable scans of subcutaneous skin tissue. IDGem series pads are bundled with SigID™ biometric recognition and scoring software in addition to SigPlus.
Product Type: Hardware
Manufacturer: Topaz
Sensor Type: Active Electromagnetic
Data Interface: USB
Data, Video and Power: Direct USB
Display Type: non-LCD
Pen Type: Active Energized
Don Luc
EECI – RD-8 Reed Relay Card
EECI – EX-16 Relay Expansion Cards
Electronic Energy Control Inc
EX-16 Relay Expansion Cards
The EX-16 Relay Expansion card provides two (8) channel relay output ports (providing 16 relay output channels) per EX-16 card. The EX-32 relay expansion card provides four (8) channel relay output ports (providing 32 relay output channels) per EX-32 card. The first EX-16 or EX-32 card is connected to the relay expansion port on the AR-8X or AR-16 Relay Interface, the ADC-4 Analog to Digital Converter, the ADC-8, ADC-16 Analog to Digital Converter or the STA-8, STA-16 Status Input Interface cards. Additional EX-16 or EX-32 expansion cards plug into the preceding EX-16 or EX-32 card. The relay expansion port on the AR-16, the ADC-4/8/16 or the STA-8/16 may be expanded with up to (7) EX-16 or (4) EX-32 expansion cards (up to 128 relay outputs for the AR-16 or 112 relay outputs for the ADC-4/8/16 and STA-8/16). Relay port locations are selected with jumpers located on the EX-16 or EX-32 cards. The EX-16 or EX-32 relay output ports are identical to those on the AR-16 and provide standard right angle box headers (10 pin with .1″ centers) or optional locking right angle box headers. Relay cards, relay driver cards or the RCT-8 terminal blocks are connected directly to the EX-16 or EX-32 relay ports with the ribbon cables provided. The RC-20 ribbon cable (sold separately) is used to connect the EX-16 or EX-32 to the AR-16, the ADC-4/8/16 or the STA-8/16. The EX-16 or EX-32 may be ordered with optically isolated relay outputs to electrically isolate the EX-16 or EX-32 output signals (specify part number EX-16/C or EX-32/C). Includes technical reference, software examples and test software. Dimensions are 5″ by 7″. The EX-16 or EX-32 may be rack mounted with any of the 5″ by 7″ cards using the CH series card racks.
Don Luc
EECI – STA-16 Status Input Interface
Electronic Energy Control Inc
STA-16 – RS-232 Contact Monitor Voltage Monitor
Designed for continuous 24 hour industrial operation.
Low cost – High reliability – 15 years of proven performance in the energy management field.
In addition to use in energy management and HVAC, the STA-16 is widely used for equipment monitoring and for use as a security system interface with event logging.
Connects to RS-232.
Full technical support provided by on staff advisors.
Optional Touch Tone Input available.
Optional AC Opto Isolators available for use with the digital inputs.
Expandable up to 144 digital inputs or up to 32 analog inputs using ST-32 or AD-16 expansion cards.
Expandable to control up to 112 relays or digital outputs using EX-16 or EX-32 expansion cards.
Compatible with all versions of Windows including XP, Vista, Windows 7 and Windows 8.
Open Source – Source code examples included in Microsoft Visual Basic 6, Microsoft Visual Basic.Net, VB 2008, VB 2010, Microsoft ASP.NET, Assembly, C and others.
Includes CD with Technical Reference and Data Logging Software – Cable, terminal block and power supply sold separately.
The STA-16 Status Input Interface provides two 8 channel status input ports which allow input of on/off status information into a conventional PC for a wide variety of monitoring and signaling applications. Uses include the input of on/off status information of relays, switches, thermostats, security system motion detectors and magnetic switches, smoke detectors, heating and air conditioning equipment, air flow switches, air damper position switches, pressure switches and thousands of other devices. The STA-16 also has many applications in HVAC and home automation. The energy consumption of equipment with a constant load (lighting, resistance heating, hot water heaters, etc.) is easily computed by multiplying the time on by the equipment’s KW rating. The STA-16 is ideal for use in logging energy usage or equipment performance and is also well suited for use as a security system logger (to record times doors are opened, motion detectors tripped, alarms or other events). Other uses include the input of 8 or 16 bit binary codes for interfacing to TTL or CMOS level digital signals (allowing connection to counters, parallel data bus lines and other types of digital devices and equipment). The KY-12M Keypad may be connected directly to the STA-16 status input ports for use with security systems, door entry access, remote data entry and other uses. A modem will permit the status inputs to be monitored from a remote site (or use an Internet connection). The status information is obtained by transmitting a single byte port code to the STA-16. The STA-16 then transmits back a single byte code with each bit representing the 8 inputs on that port. The status inputs are turned on by applying a small current (6 ma typical) to the LED inside the opto coupler on the STA-16 (minimum 1.5 volts required, common cathode). Optional AC opto couplers are available which will turn on in both directions, allowing for both common cathode and common anode configurations. The input voltage range defaults to a 6 to 18 volt range with a 1.8 K series resistor to the LED (the STA-16 may be ordered with other resistor values or with no resistors by specifying the /M option). The STA-16 Status Input Interface provides a relay expansion port to control up to 112 relays (using EX-16 or EX-32 relay expansion cards) and an input expansion port which allows for expansion to 144 status inputs or 32 analog inputs (using ST-32, AD-16 or AD-32 expansion cards). An optional Touch Tone input is also available. Includes technical reference, software examples and STA-16 Data Acquisition Software for Windows (for use with Windows versions 3.0, 3.1, Windows 95, 98, 2000, ME, NT, XP, Vista and Windows 7, 8). Software is also provided that allow the STA-16 inputs and/or relays to be controlled or monitored over a network (LAN, Internet, etc.).
Don Luc
Machine
A machine is a tool containing one or more parts that uses energy to perform an intended action. Machines are usually powered by mechanical, chemical, thermal, or electrical means, and are often motorized. Historically, a power tool also required moving parts to classify as a machine. However, the advent of electronics has led to the development of power tools without moving parts that are considered machines.
A simple machine is a device that simply transforms the direction or magnitude of a force, but a large number of more complex machines exist. Examples include vehicles, electronic systems, molecular machines, computers, television, and radio.
Electronic Devices
Vacuum tube, Transistor, Diode, Resistor, Capacitor, Inductor, Memristor, Semiconductor, Computer.
Robots
Actuator, Servo, Servomechanism, Stepper motor, Computer.
Electronic Machine
Electronics is the branch of physics, engineering and technology dealing with electrical circuits that involve active electrical components such as vacuum tubes, transistors, diodes and integrated circuits, and associated passive interconnection technologies. The nonlinear behavior of active components and their ability to control electron flows makes amplification of weak signals possible and is usually applied to information and signal processing. Similarly, the ability of electronic devices to act as switches makes digital information processing possible. Interconnection technologies such as circuit boards, electronic packaging technology, and other varied forms of communication infrastructure complete circuit functionality and transform the mixed components into a working system.
Don Luc
Ontrak ADU208 – Mk1
ADU208 USB Relay I/O Interface ( Dimensions, 5.1″ X 2.8 X 1.0″ )
The ADU208 USB Relay I/O Interface allows control of 8 relay contact outputs, 8 contact or TTL inputs, and 8 event counters via a USB port. The ADU208 can effectively convert a standard PC to a powerful PLC ( programmable logic controller ). High quality PA-Series relays from Aromat offer superior performance. This low-cost serial relay contact interface is easy to use with VB, VB.NET, and Visual C++ via standard HID drivers included with Windows 98,2000,XP. A mini-driver ( DLL )* is also provided allowing control using standard ASCII commands using familiar readfile , writefile commands. The ADU208 includes a 10′ USB cable and is available as a PCB or in an enclosure with several mounting options.
Key Benefits, ADU208 USB Relay I/O Interface
Provides a standard PC with PLC ( programmable logic controller ) functions.
Low-cost .
Bus Powered, No external power supply required.
8, N. O. relay contact outputs rated 5.0A @ 120VAC, 5.0A @ 30VDC
CSA/UL Approved, CE Marked
High quality Aromat PA-series relays offer superior performance.
8 Digital inputs suitable for contact or TTL Input , also accept up to 24VDC
Inputs feature optical isolation to 3500V ( 500V channel to channel )
Programmable watchdog functions.
Bi-colour LED status indicator.
Self-resetting, fused 5V output
High quality cage-clamp type terminal blocks.
Uses standard HID drivers included with Windows 98SE,2000,XP
Mini-driver ( DLL ) provided for use with VB,VC, LabVIEW and TestPoint
Programming examples and sample code included for VB, Visual C++
Eight, 16-bit event counters
Programmable debounce setting for event counters.
No power supply required.
Meets IEC61000-4-2 ESD protection for USB port.
Available in enclosure or as PCB only.
Don Luc
Project #3 – LCD Shield – Mk5
LCDShieldMk5.1.ino
// ***** Don Luc ***** // Software Version Information // 5.1 // include the library code: #include <Wire.h> #include <Adafruit_MCP23017.h> #include <Adafruit_RGBLCDShield.h> #include <SPI.h> #include <RTClib.h> #include <RTC_DS3231.h> #include <OneWire.h> RTC_DS3231 RTC; #define SQW_FREQ DS3231_SQW_FREQ_1024 //0b00001000 1024Hz Adafruit_RGBLCDShield RGBLCDShield = Adafruit_RGBLCDShield(); // These #defines make it easy to set the backlight color #define OFF 0x0 #define RED 0x1 #define YELLOW 0x3 #define GREEN 0x2 #define TEAL 0x6 #define BLUE 0x4 #define VIOLET 0x5 #define WHITE 0x7 int yy = 0; uint8_t momentaryButton = 0; // Chorno boolean isChorno = true; boolean isChor = false; char datastr[100]; int zz = 0; // LDR (light dependent resistor) int LDR_Pin = A0; int LDRReading = 0; String LDR = ""; // Temperature chip i/o int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2 OneWire ds(DS18S20_Pin); // on digital pin 2 float temperature = 0; String tempZ = ""; // Potentiometer int potPin = A2; // select the input pin for the potentiometer int ledPin = 4; // select the pin for the LED boolean isVal = false; int potPot = 0; String cap = ""; void loop() { RGBLCDShield.clear(); // ChronoDot // set the cursor to column 0, line 1 RGBLCDShield.setCursor(0, 1); timeChrono(); // LDR (light dependent resistor) timeLDR(); // Temperature chip i/o temperatu(); // Potentiometer getPotentio(); momentaryButton = RGBLCDShield.readButtons(); // set the cursor to column 0, line 0 RGBLCDShield.setCursor(0,0); switch ( yy ) { case 1: // LDR (light dependent resistor) isLDR(); break; case 2: // Temperature chip i/o isTe(); break; case 3: // Potentiometer isCap(); break; case 4: // Yellow RGBLCDShield.print("YELLOW - RIGHT"); break; case 5: // OFF RGBLCDShield.print("OFF"); break; default: yy = 0; RGBLCDShield.print("Don Luc!!!"); } if ( momentaryButton ) { if ( momentaryButton & BUTTON_UP ) { isChorno = true; yy = 1; // LDR (light dependent resistor) RGBLCDShield.setBacklight(GREEN); } if ( momentaryButton & BUTTON_DOWN ) { isChorno = true; yy = 2; // Temperature chip i/o RGBLCDShield.setBacklight(RED); } if ( momentaryButton & BUTTON_LEFT ) { isChorno = true; yy =3; // Potentiometer RGBLCDShield.setBacklight(BLUE); } if ( momentaryButton & BUTTON_RIGHT ) { isChorno = true; yy = 4; //RGBLCDShield.print("YELLOW - RIGHT"); RGBLCDShield.setBacklight(YELLOW); } if ( momentaryButton & BUTTON_SELECT ) { isChorno = false; yy = 5; //RGBLCDShield.print("OFF"); RGBLCDShield.setBacklight(OFF); } } delay(5000); }
setup.ino
void setup() { // set up the LCD's number of columns and rows: RGBLCDShield.begin(16, 2); RGBLCDShield.setBacklight(VIOLET); // ChronoDot setupChrono(); // Pot pinMode(ledPin, OUTPUT); }
ChronoDot.ino
void setupChrono() { RTC.begin(); DateTime now = RTC.now(); DateTime compiled = DateTime(__DATE__, __TIME__); RTC.getControlRegisterData( datastr[0] ); } void timeChrono() { DateTime now = RTC.now(); DateTime isNow (now.unixtime() + 5572 * 86400L + 26980); if ( isChorno == true ) { if ( isChor == false ) { isChor = true; RGBLCDShield.print(isNow.year(), DEC); RGBLCDShield.print('/'); RGBLCDShield.print(isNow.month(), DEC); RGBLCDShield.print('/'); RGBLCDShield.print(isNow.day(), DEC); RGBLCDShield.print(' '); RGBLCDShield.print(' '); } else if ( isChor == true ) { isChor = false; RGBLCDShield.print(isNow.hour(), DEC); RGBLCDShield.print(':'); RGBLCDShield.print(isNow.minute(), DEC); RGBLCDShield.print(':'); RGBLCDShield.print(isNow.second(), DEC); RGBLCDShield.print(' '); RGBLCDShield.print(' '); } } }
getLDR.ino
void timeLDR() { // LDR LDRReading = analogRead(LDR_Pin); } void isLDR() { LDR = "LDR: "; LDR.concat(LDRReading); // LDR (light dependent resistor) RGBLCDShield.print( LDR ); }
getPot.ino
void getPotentio() { if ( isVal == false ) { isVal = true; digitalWrite(ledPin, HIGH); // turn the ledPin on } else if ( isVal == true ) { isVal = false; digitalWrite(ledPin, LOW); // turn the ledPin off } potPot = analogRead(potPin); // read the value from the sensor } void isCap(){ cap = "Pot: "; cap.concat(potPot); RGBLCDShield.print( cap ); }
getTemperature.ino
float getTemp() { //returns the temperature from one DS18S20 in DEG Celsius byte data[12]; byte addr[8]; if ( !ds.search(addr)) { //no more sensors on chain, reset search ds.reset_search(); return -1001; } if ( OneWire::crc8( addr, 7) != addr[7]) { return -1002; } if ( addr[0] != 0x10 && addr[0] != 0x28) { return -1003; } ds.reset(); ds.select(addr); ds.write(0x44,1); // start conversion, with parasite power on at the end byte present = ds.reset(); ds.select(addr); ds.write(0xBE); // Read Scratchpad for (int i = 0; i < 9; i++) { // we need 9 bytes data[i] = ds.read(); } ds.reset_search(); byte MSB = data[1]; byte LSB = data[0]; float tempRead = ((MSB << 8) | LSB); //using two's compliment float TemperatureSum = tempRead / 16; return TemperatureSum; } void temperatu(){ temperature = getTemp(); } void isTe() { tempZ = "Temp: "; tempZ.concat(temperature); tempZ.concat("C"); RGBLCDShield.print( tempZ ); }
Don Luc
Project #3 – LCD Shield – Mk4
1 X Mini Photocell
1 X Resistor 10k Ohm
1 X One Wire Digital Temperature Sensor – DS18B20
1 X Resistor 4.7k Ohm
1 X Trimpot 10K with Knob
1 X Resistor 1.65k Ohm
1 X 3MM Low Current Red LED
14 X Jumper Wires Premium 3″ M/M
1 X Project #3 – LED Shield – Mk3
LCDShieldMk4.3.ino
// ***** Don Luc ***** // Software Version Information // 4.3 // include the library code: #include <Wire.h> #include <Adafruit_MCP23017.h> #include <Adafruit_RGBLCDShield.h> #include <SPI.h> #include <RTClib.h> #include <RTC_DS3231.h> #include <OneWire.h> RTC_DS3231 RTC; #define SQW_FREQ DS3231_SQW_FREQ_1024 //0b00001000 1024Hz Adafruit_RGBLCDShield RGBLCDShield = Adafruit_RGBLCDShield(); // These #defines make it easy to set the backlight color #define OFF 0x0 #define RED 0x1 #define YELLOW 0x3 #define GREEN 0x2 #define TEAL 0x6 #define BLUE 0x4 #define VIOLET 0x5 #define WHITE 0x7 // Chorno boolean isChorno = false; char datastr[100]; // LDR (light dependent resistor) int LDR_Pin = A0; String LDR = ""; // Temperature chip i/o int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2 OneWire ds(DS18S20_Pin); // on digital pin 2 String tempZ = ""; // Potentiometer int potPin = A2; // select the input pin for the potentiometer int ledPin = 4; // select the pin for the LED boolean isVal = false; int potPot = 0; String cap = ""; void loop() { // timeChrono(); timeChrono(); uint8_t momentaryButton = RGBLCDShield.readButtons(); if ( momentaryButton ) { RGBLCDShield.clear(); RGBLCDShield.setCursor(0,0); if ( momentaryButton & BUTTON_UP ) { timeLDR(); RGBLCDShield.print( LDR ); RGBLCDShield.setBacklight(GREEN); } if ( momentaryButton & BUTTON_DOWN ) { temperatu(); RGBLCDShield.print( tempZ ); RGBLCDShield.setBacklight(RED); } if ( momentaryButton & BUTTON_LEFT ) { getPotentio(); RGBLCDShield.print( cap ); RGBLCDShield.setBacklight(BLUE); } if ( momentaryButton & BUTTON_RIGHT ) { RGBLCDShield.print("YELLOW - RIGHT"); RGBLCDShield.setBacklight(YELLOW); } if ( momentaryButton & BUTTON_SELECT ) { RGBLCDShield.print("OFF"); RGBLCDShield.setBacklight(OFF); } } delay(3000); }
setup.ino
void setup() { // set up the LCD's number of columns and rows: RGBLCDShield.begin(16, 2); RGBLCDShield.print("Don Luc!!!"); RGBLCDShield.setBacklight(VIOLET); // ChronoDot setupChrono(); // Pot pinMode(ledPin, OUTPUT); }
ChronoDot.ino
void setupChrono() { RTC.begin(); DateTime now = RTC.now(); DateTime compiled = DateTime(__DATE__, __TIME__); RTC.getControlRegisterData( datastr[0] ); } void timeChrono() { DateTime now = RTC.now(); DateTime isNow (now.unixtime() + 5572 * 86400L + 26980); // set the cursor to column 0, line 1 RGBLCDShield.setCursor(0, 1); if ( isChorno == false ) { isChorno = true; RGBLCDShield.print(isNow.year(), DEC); RGBLCDShield.print('/'); RGBLCDShield.print(isNow.month(), DEC); RGBLCDShield.print('/'); RGBLCDShield.print(isNow.day(), DEC); RGBLCDShield.print(' '); RGBLCDShield.print(' '); } else if ( isChorno == true ) { isChorno = false; RGBLCDShield.print(isNow.hour(), DEC); RGBLCDShield.print(':'); RGBLCDShield.print(isNow.minute(), DEC); RGBLCDShield.print(':'); RGBLCDShield.print(isNow.second(), DEC); RGBLCDShield.print(' '); RGBLCDShield.print(' '); } }
getLDR.ino
void timeLDR() { // LDR int LDRReading = analogRead(LDR_Pin); LDR = "LDR: "; LDR.concat(LDRReading); }
getPot.ino
void getPotentio() { if ( isVal == false ) { isVal = true; digitalWrite(ledPin, HIGH); // turn the ledPin on } else if ( isVal == true ) { isVal = false; digitalWrite(ledPin, LOW); // turn the ledPin off } potPot = analogRead(potPin); // read the value from the sensor cap = "Pot: "; cap.concat(potPot); }
getTemperature.ino
float getTemp() { //returns the temperature from one DS18S20 in DEG Celsius byte data[12]; byte addr[8]; if ( !ds.search(addr)) { //no more sensors on chain, reset search ds.reset_search(); return -1001; } if ( OneWire::crc8( addr, 7) != addr[7]) { return -1002; } if ( addr[0] != 0x10 && addr[0] != 0x28) { return -1003; } ds.reset(); ds.select(addr); ds.write(0x44,1); // start conversion, with parasite power on at the end byte present = ds.reset(); ds.select(addr); ds.write(0xBE); // Read Scratchpad for (int i = 0; i < 9; i++) { // we need 9 bytes data[i] = ds.read(); } ds.reset_search(); byte MSB = data[1]; byte LSB = data[0]; float tempRead = ((MSB << 8) | LSB); //using two's compliment float TemperatureSum = tempRead / 16; return TemperatureSum; } void temperatu(){ float temperature = getTemp(); tempZ = "Temp: "; tempZ.concat(temperature); tempZ.concat("C"); }
Don Luc
Project #3 – LCD Shield – Mk3
2 X Jumper Wires Premium 3″ M/M
1 X Project #3 – LED Shield – Mk2
LCDShieldMk3.0.ino
// ***** Don Luc ***** // Software Version Information // 3.0 // include the library code: #include <Wire.h> #include <Adafruit_MCP23017.h> #include <Adafruit_RGBLCDShield.h> #include <SPI.h> #include <RTClib.h> #include <RTC_DS3231.h> RTC_DS3231 RTC; #define SQW_FREQ DS3231_SQW_FREQ_1024 //0b00001000 1024Hz Adafruit_RGBLCDShield RGBLCDShield = Adafruit_RGBLCDShield(); // These #defines make it easy to set the backlight color #define OFF 0x0 #define RED 0x1 #define YELLOW 0x3 #define GREEN 0x2 #define TEAL 0x6 #define BLUE 0x4 #define VIOLET 0x5 #define WHITE 0x7 boolean isChorno = false; char datastr[100]; void loop() { // timeChrono(); timeChrono(); uint8_t momentaryButton = RGBLCDShield.readButtons(); if ( momentaryButton ) { RGBLCDShield.clear(); RGBLCDShield.setCursor(0,0); if ( momentaryButton & BUTTON_UP ) { RGBLCDShield.print("GREEN - UP"); RGBLCDShield.setBacklight(GREEN); } if ( momentaryButton & BUTTON_DOWN ) { RGBLCDShield.print("RED - DOWN"); RGBLCDShield.setBacklight(RED); } if ( momentaryButton & BUTTON_LEFT ) { RGBLCDShield.print("BLUE - LEFT"); RGBLCDShield.setBacklight(BLUE); } if ( momentaryButton & BUTTON_RIGHT ) { RGBLCDShield.print("YELLOW - RIGHT"); RGBLCDShield.setBacklight(YELLOW); } if ( momentaryButton & BUTTON_SELECT ) { RGBLCDShield.print("OFF"); RGBLCDShield.setBacklight(OFF); } } delay(3000); }
setup.ino
void setup() { // set up the LCD's number of columns and rows: RGBLCDShield.begin(16, 2); RGBLCDShield.print("Don Luc!!!"); RGBLCDShield.setBacklight(VIOLET); // ChronoDot setupChrono(); }
ChronoDot.ino
void setupChrono() { RTC.begin(); DateTime now = RTC.now(); DateTime compiled = DateTime(__DATE__, __TIME__); RTC.getControlRegisterData( datastr[0] ); } void timeChrono() { DateTime now = RTC.now(); DateTime isNow (now.unixtime() + 5572 * 86400L + 26980); // set the cursor to column 0, line 1 RGBLCDShield.setCursor(0, 1); if ( isChorno == false ) { isChorno = true; RGBLCDShield.print(isNow.year(), DEC); RGBLCDShield.print('/'); RGBLCDShield.print(isNow.month(), DEC); RGBLCDShield.print('/'); RGBLCDShield.print(isNow.day(), DEC); RGBLCDShield.print(' '); RGBLCDShield.print(' '); } else if ( isChorno == true ) { isChorno = false; RGBLCDShield.print(isNow.hour(), DEC); RGBLCDShield.print(':'); RGBLCDShield.print(isNow.minute(), DEC); RGBLCDShield.print(':'); RGBLCDShield.print(isNow.second(), DEC); RGBLCDShield.print(' '); RGBLCDShield.print(' '); } }
Don Luc