Interfacing to a membrane keyboard

Hi there,
I'm trying to interface an arduino micro to my existing home alarm system.
My idea is to implement an PN532 RFID key to deactivate the alarm when I come back home instead of typing the personal code (6 numbers) every time.

I've already done the part regarding the RFID and it works smoothly.

Now I don't know how to interface my Arduino to the existing matrix membrane keyboard in order to mimic a keypression in the correct way, preventing any damage to the alarm keyboard PCB.

The alarm keyboard is a Gesco K32E.

Any suggestion?

Welcome back.

This doesn't sound like there is a computer (PC) involved and hence your topic has been moved to a more suitable location on the forum.

You need a schematic of the alarm system and keyboard, otherwise you may indeed damage the entire system and not just the keyboard

Thank you for the reply.
I think it's impossible to have the schematics of the PCB of the alarm.
Anyway, I just need something to mimic the pressure of one key, intercepting the traces (row/column) of the keys of interest (already done, in fact if I short circuit two wires I solder to the PCB I can trigger the pushing of one button).

I wonder if there's a way to do this with a digital output of the Arduino using some external component (maybe an optoisolator?).
In the end, is the same as pushing a button on the keypad I think :thinking:

Well if you are willing to take a chance you can use a common PC817 optoisolator. You need one for each key.
You also need to know the polarity of the button voltage in order to use an optoisolator.

It might be this one:

https://www.gesco.it/easyUp/file/manuali/InProduzione/K32.pdf

I recently did a project in which my Pro Mini creates a button push on my microwave oven's membrane keyboard. I didn't need isolation because my Pro Mini was powered from the microwave's circuit. So I used an N-channel mosfet to short the key's row line to its column line, which is what happens when you physically push the button.

You will need to figure out which motherboard pins correspond to the row lines and column lines.

You will also need to find the voltage on the row and column lines when no key is pressed. If you're lucky, one will be at ground. The other may be high, or the alarm's circuit may constantly cycle through each line one at a time. Or it may be more complicated than than.

However, you can use small opto-isolators that are called solid state relays, and then you don't have to worry about the voltages or polarities. Something like the CPC1017N should work. It's like the 4Nxx parts, but the output is back-to-back mosfets, so when it's on, it just shorts the input to the output, which would be the row to the column. You would need six of them, or some lesser number if your 6-digit code has some repeats. About a dollar at Digikey.

Anyway, here's my microwave project:

https://github.com/gbhug5a/Microwave_Anti-Beep_Mod

I found out that the matrix has 4 column and 3 rows.
All lines are pulled-up at 3.3V with a resistor of 2.2k except one row that is 0V (can't figuring out why).
Anyway I'll go with small relay (because I don't need all the keys) and should be fine.

I also tried with an IGBT, a transistor and an opto isolator but none of them seems to do the job properly (probably for my lack of experience).

Any suggestion about very small relay I can use with Arduino for this purpose?

Chances are it actually has 4 rows and 3 columns (if that's what the keypad itself looks like). And I can't think of a keypad algorithm that has 6 lines pulled up but 1 line at ground. So you possibly don't have it figured out yet.

The solid state relay I mentioned in my previous post, or something similar in a package you like, should work. I don't think you want a mechanical relay.

Yes, it's a strange configuration, but I'm not worried about it.

Anyway I think that a reed relay could solve my problem. The SIP-1A05 seems good, is compact and works at 5V. I'll let you know if this works once I'll receive all the stuff from Amazon :relieved_face::+1:t2:

Buy the model with the diode inside, otherwise you will need to buy separate diode for each relay to put across the coil connections.