Hay all;
i need a help with expand of my project.
i used standalone atmega328p of my arduino to switch on and switch off 10 motors by Relays.
the switching times depends on times that taken from RTC DS1307 every day.
my Problem is that i need to increase the motors "relays" to be 20 motor
i need more 10 points to my arduino (i used A4, A5 in RTC) any help !!!!!!!!!
Thank you
Use a couple of shift registers. TPIC6B595 with 8 outputs each capable of sinking 150mA continuous, 3 chips will let you control 24 relays while using just 3 IO pins on the 328P.
Every time you needed to switch a pin, you'd have to send new values to the shift registers, with that one bit set or unset. You can't use digitalWrite() to control pins on any sort of port expander.
PCF8574T.
"Latched outputs directly drive LEDs" Ok, sounds good for LEDs. What about motors?
"Total package sink capability of 80 mA" So, maybe 1 motor.
Driving 20 motors, keep the state of the motors in 3 bytes, each bit representing 1 motor.
When a motor state needs to change, change its bit, and send all 3 bytes out again. Pretty simple.