Change internal logic from relays to an Arduino
Not Touching the Puzzle
The else
function block (lines 48-53) starts the counterpoint to the if
on line 37. In this case, the handles are not touching the puzzle, so I clear iMotorReset1
by setting it to
and perform a debug print to show that the motor has been turned off.
The Long Timeout
The if
block in lines 70-76 checks two conditions: Is millis
(current time) greater than ulMotor1
, the long timeout value, and is a timeout timer active (ulMotor1
is not equal to
)? When the handle touches the puzzle, the delay is set for 10 seconds. If the handle remains in contact with the puzzle for that long, the motors are shut off.
The digitalWrite
functions in lines 72 and 73 turn the motors off by setting the output pin to HIGH
and turning off the relay. Line 74 sets the iMotorReset1
flag, and the final function sends the debug message Motor Timeout to indicate that the handle was left on the puzzle too long.
The Shorter Timeout
The simpler if
block (lines 85-90) checks whether the short timer has been exceeded. Once the handle comes off the puzzle, it continues to buzz for half a second before you can continue your attempt. The digitalWrite
functions in lines 87 and 88 do the work of turning the relays (and thus the motors) off; then, ulMotor1
is reset to
so that the buzzer can be triggered again the next time the circuit is triggered.
« Previous 1 2 3 4 Next »
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Red Hat Adds New Deployment Option for Enterprise Linux Platforms
Red Hat has re-imagined enterprise Linux for an AI future with Image Mode.
-
OSJH and LPI Release 2024 Open Source Pros Job Survey Results
See what open source professionals look for in a new role.
-
Proton 9.0-1 Released to Improve Gaming with Steam
The latest release of Proton 9 adds several improvements and fixes an issue that has been problematic for Linux users.
-
So Long Neofetch and Thanks for the Info
Today is a day that every Linux user who enjoys bragging about their system(s) will mourn, as Neofetch has come to an end.
-
Ubuntu 24.04 Comes with a “Flaw"
If you're thinking you might want to upgrade from your current Ubuntu release to the latest, there's something you might want to consider before doing so.
-
Canonical Releases Ubuntu 24.04
After a brief pause because of the XZ vulnerability, Ubuntu 24.04 is now available for install.
-
Linux Servers Targeted by Akira Ransomware
A group of bad actors who have already extorted $42 million have their sights set on the Linux platform.
-
TUXEDO Computers Unveils Linux Laptop Featuring AMD Ryzen CPU
This latest release is the first laptop to include the new CPU from Ryzen and Linux preinstalled.
-
XZ Gets the All-Clear
The back door xz vulnerability has been officially reverted for Fedora 40 and versions 38 and 39 were never affected.
-
Canonical Collaborates with Qualcomm on New Venture
This new joint effort is geared toward bringing Ubuntu and Ubuntu Core to Qualcomm-powered devices.