adding 8 channel solenoid driver demos
This commit is contained in:
parent
ef00664e14
commit
8140f4286e
2 changed files with 85 additions and 0 deletions
|
|
@ -0,0 +1,47 @@
|
||||||
|
// SPDX-FileCopyrightText: 2025 Liz Clark for Adafruit Industries
|
||||||
|
//
|
||||||
|
// SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
#include <Adafruit_MCP23X17.h>
|
||||||
|
|
||||||
|
#define NOID_1 0 // MCP23XXX pin LED is attached to
|
||||||
|
#define NOID_2 4 // MCP23XXX pin LED is attached to
|
||||||
|
|
||||||
|
Adafruit_MCP23X17 mcp;
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin(115200);
|
||||||
|
while (!Serial);
|
||||||
|
Serial.println("8 Channel Solenoid Driver Demo");
|
||||||
|
if (!mcp.begin_I2C()) {
|
||||||
|
Serial.println("Couldn't find MCP23017..");
|
||||||
|
while (1);
|
||||||
|
}
|
||||||
|
mcp.pinMode(NOID_1, OUTPUT);
|
||||||
|
mcp.pinMode(NOID_2, OUTPUT);
|
||||||
|
|
||||||
|
Serial.println("Found MCP23017, looping...");
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
Serial.println("Solenoid 1!");
|
||||||
|
mcp.digitalWrite(NOID_1, HIGH);
|
||||||
|
delay(500);
|
||||||
|
mcp.digitalWrite(NOID_1, LOW);
|
||||||
|
delay(500);
|
||||||
|
Serial.println("Solenoid 2!");
|
||||||
|
mcp.digitalWrite(NOID_2, HIGH);
|
||||||
|
delay(500);
|
||||||
|
mcp.digitalWrite(NOID_2, LOW);
|
||||||
|
delay(500);
|
||||||
|
Serial.println("Together!");
|
||||||
|
mcp.digitalWrite(NOID_1, HIGH);
|
||||||
|
mcp.digitalWrite(NOID_2, HIGH);
|
||||||
|
delay(1000);
|
||||||
|
mcp.digitalWrite(NOID_1, LOW);
|
||||||
|
mcp.digitalWrite(NOID_2, LOW);
|
||||||
|
delay(2000);
|
||||||
|
Serial.println("Repeat!");
|
||||||
|
Serial.println();
|
||||||
|
delay(500);
|
||||||
|
}
|
||||||
38
8_Channel_Solenoid_Driver/CircuitPython/code.py
Normal file
38
8_Channel_Solenoid_Driver/CircuitPython/code.py
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
# SPDX-FileCopyrightText: 2025 Liz Clark for Adafruit Industries
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
import time
|
||||||
|
import board
|
||||||
|
from adafruit_mcp230xx.mcp23017 import MCP23017
|
||||||
|
|
||||||
|
i2c = board.STEMMA_I2C()
|
||||||
|
|
||||||
|
mcp = MCP23017(i2c)
|
||||||
|
|
||||||
|
noid_1 = mcp.get_pin(0)
|
||||||
|
noid_2 = mcp.get_pin(4)
|
||||||
|
noid_1.switch_to_output(value=False)
|
||||||
|
noid_2.switch_to_output(value=False)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
noid_1.value = True
|
||||||
|
print(f"Solenoid 1: {noid_1.value}, Solenoid 2: {noid_2.value}")
|
||||||
|
time.sleep(0.2)
|
||||||
|
noid_1.value = False
|
||||||
|
print(f"Solenoid 1: {noid_1.value}, Solenoid 2: {noid_2.value}")
|
||||||
|
time.sleep(0.2)
|
||||||
|
noid_2.value = True
|
||||||
|
print(f"Solenoid 1: {noid_1.value}, Solenoid 2: {noid_2.value}")
|
||||||
|
time.sleep(0.2)
|
||||||
|
noid_2.value = False
|
||||||
|
print(f"Solenoid 1: {noid_1.value}, Solenoid 2: {noid_2.value}")
|
||||||
|
time.sleep(1)
|
||||||
|
noid_1.value = True
|
||||||
|
noid_2.value = True
|
||||||
|
print(f"Solenoid 1: {noid_1.value}, Solenoid 2: {noid_2.value}")
|
||||||
|
time.sleep(1)
|
||||||
|
noid_1.value = False
|
||||||
|
noid_2.value = False
|
||||||
|
print(f"Solenoid 1: {noid_1.value}, Solenoid 2: {noid_2.value}")
|
||||||
|
time.sleep(2)
|
||||||
Loading…
Reference in a new issue