Should I use Arduino or simpel electronics

My knowledge of programming is limited. Used basic, C and the likes in school (>20 years ago) but never had a real feel for it. And I have chemo-brain (have I gotten your sympathy yet so you'll write all my code for me? :wink: ). But seriously, my head has a harder time structuring and retaining information than before the chemo treatments, which is a real drawback (not just for this planned project).

So should I use an Arduino, or go for a simpler approach with basic electronics?

It's a project that needs to be finished next weekend, still needs a lot of work on (physically) building everything, so I have an extimated 8 hours available for the programming. And I estimate I would only need an hour (EXTRA) for the simple electronic variant.

What I want the Arduino to do is control an 'escape room' in a box (present):

  • have a timer (current plan: in the form of an LED that blnks in an ever increasing pace until it light continuously and possibly send a signal to a ready made beeper). Electronic version: no clue yet, manual eggtimer?
  • let an LED blink the word 'morse' in morse code
  • monitor 3 digital inputs. When they are all high (or low if need be), set the binary value 'clock' to true and turn on a green LED. (Electronic version: they are external multi-position-switches disguised as clocks (hence the name), I can wire them so they directly turn on the green LED if in the correct position).
  • monitor an analog input (potmeter) and set the binary value 'potmeter' to true if it is within a certain range (and stable for a few seconds) and turn on a (second) green LED (electronic version: it's a multi turn potmeter so just accept any input above half the value or use a NPN and a PNP transistor where only the middle position turns them both ON)
  • 3x3 matrix and only accept the correct input (2, 3, 5, 7) in a specific order to set 'matrix' to true and turn a (third) green LED on. Maybe speed up the timer if an error is made and/or send a signal to the beeper. (electronic version: don't use pushbuttons but real switches and again wire them so the green LED turns on when 2, 3, 5, 7 are in the ON position and the others are in the OFF position.)
  • if all three green LED's are ON, send a signal to an output (opens a lid) and stop the timer/program. (electronic version: let each green LED control a transistor, if all three transistors are ON, a current can flow for the lid to open).

So is this more than 8 hours work for a noob? Or can I just copy most of the code from other projects? (I started with rewriting the 'blink an LED'code for the timer code, but since this was my first try, I didn't know NOT to use the delay command yet...)

Hi,
If you are in chemo and are experiencing the effects of it, I know, why are you attempting this project and why the time constraint?
Stressing yourself out is not good for yourself or anybody.

Sorry.. Tom... :slight_smile:
PS. 7 year remission cancer.

r-p:
So is this more than 8 hours work for a noob?

Based on what you say about your programming experience I reckon it would be considerably more than 8 hours work - even if intense concentration for long periods was possible.

It is very easy to waste several hours on a trivial programming problem where you can't readily see the error. And that happens to experienced programmers regularly.

And I would like to support @TomGeorge's comment about stress - thankfully I am healthy but I know from experience that learning a new skill when faced with a deadline can be very stressful.

...R

Thanks for the answers and sympathy. Luckily I'm not in chemo right now (I'm on immunotherapy atm), but have had chemo in the past and that clearly left a lasting effect.

I'll soldier on this weekend and drop it if no real progress is made. That should give me enough time to still go the other route.

Time constraint is due to it being a present and the giftgiving is next week. (Sinterklaas, 5th of December, that's what Santa Claus is named after).

And I have an Arduino because I want to learn how to use it. It's been in its antistatic packaging for almost 5 years now :wink:

One small piece of the puzzle, still a load to go. Thanks to aarg on this page.

(This program blinks the word "morse" in morse code.)

// Morse blink sketch by aarg & rp, Arduino forum
// found here https://forum.arduino.cc/index.php?topic=354227.0
// circular list of intervals, alternating off and on
unsigned long intervals[] = {5000, 500, 250, 500, 2000, 500, 250, 500, 250, 500, 2000, 100, 250, 500, 250, 100, 2000, 100, 250, 100, 250, 100, 2000, 100};
const byte NUM_OF_INTERVALS = sizeof(intervals) / sizeof(unsigned long);
byte currentInterval = 0;

unsigned long previousMillis = 0;
void setup()
{
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop()
{
  unsigned long currentMillis = millis();                       //get current value of millisecond counter
  if (currentMillis - previousMillis >= intervals[currentInterval])  //if the time interval has elapsed
  {
    currentInterval = currentInterval + 1;                      // select the next interval in the list
    if (currentInterval >= NUM_OF_INTERVALS)
      currentInterval = 0;
    digitalWrite(LED_BUILTIN, not digitalRead(LED_BUILTIN));    //change state of the LED
    previousMillis = currentMillis;                             //save the time of change
  }
}

Looking at your requirements, it is clear that you would not be able to do this with "simpel electronics" though there are ways of performing each individual function with analog or logic devices.

The point is however that a single Ardiuno (preferably a Nano rather than the inconvenient UNO) will simultaneously perform all the functions with less effort in construction.

The Morse function can be performed with a clock generator (74HC14), a counter and a EPROM - but you then have to program the EPROM! :astonished:

I will not abandon the Arduino, but I will for this project. I’ll use it for the above posted Morse blinking LED, but that’s it.

The timer will be left out I think. They should be able to do this within 10 minutes or other people in the room will become impatient and start to nag. Almost as good as having a timer :wink:

I have three 6-way switches that I will wire in series (didn’t think of this before, had planned to use 3 inputs on the Arduino…). Output if set correctly will be 5V or ground, yet to be determined by what I have lying around (e.g. quad 2port NAND but I might have AND ports too).

Same with the 3x3 matrix: I’ll use 9 switches with a center position and an up (connects the centerconnection to the upper connection) or down (connects center to lower connection) switch position. They need to be correctly set to either up (marked ON) or down (marked OFF) before it will pass the inspection. Again all wired in series.

And a mutliturn pot that I’ll measure with two comparators.

That should take me a few hours to wire up and install but very much limit any extra time that programming would have cost me. Yes the Arduino solution would have been so much more elegant, but I’m not (even close to being) there yet…
(I do not have a 3x3 matrix, so soldering 9 pushbutton switches and diodes onto an experimenting-PCB or wire 9 two-position switches is about the same amount of work. Wiring in the NAND and the comparators might be a little more work than hooking it up to the Arduino, but I think I’ll use a breadboard to wire it all up.)