In this two part series we take a look at mechanical relays: different types, terminology, theory of operation, and design considerations. We finish part one with a demo of an armature relay showing its inside, how to actuate it, and capture its flyback voltage waveform with an Oscilloscope. In part 2 we look at a simple circuit that allows us to control armature or reed relays with a simple digital pin from a microcontroller. We also look at a circuit design that allows us to avoid hot switching when using mechanical relays.
The ForceTronics blog provides tutorials on creating fun and unique electronic projects. The goal of each project will be to create a foundation or jumping off point for amateur, hobbyist, and professional engineers to build on and innovate. Please use the comments section for questions and go to forcetronics.com for information on forcetronics consulting services.
Showing posts with label flyback. Show all posts
Showing posts with label flyback. Show all posts
Friday, June 23, 2023
Tutorial on Routing Electrical Signal with Mechanical Relays
Check us out on Patreon for exclusive content related to this series: https://www.patreon.com/forcetronics
Wednesday, September 14, 2022
How to Control Water Flow with Arduino IoT Cloud and a Solenoid Parts 1 and 2
In this two part series we look at how to control a Solenoid using an ESP32 board and the Arduino IoT Cloud. In part one we focus on what a solenoid is and the hardware needed to drive a solenoid open or closed. In part 2 we focus on setting up the Arduino IoT Cloud control.
\
Link to tutorial on setting up device on Arduino IoT Cloud: https://docs.arduino.cc/arduino-cloud/getting-started/esp-32-cloud
//**************Arduino Code from Tutorial*********************
#include "thingProperties.h"
#define SOLENOID_PIN 21
void setup() {
pinMode(SOLENOID_PIN,OUTPUT);
digitalWrite(SOLENOID_PIN,LOW);
// Defined in thingProperties.h
initProperties();
// Connect to Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
/*
The following function allows you to obtain more information
related to the state of network and IoT Cloud connection and errors
the higher number the more granular information you’ll get.
The default is 0 (only errors).
Maximum is 4
*/
setDebugMessageLevel(2);
ArduinoCloud.printDebugInfo();
}
void loop() {
ArduinoCloud.update();
if(water_Scheduler.isActive() || solenoidState) {
digitalWrite(SOLENOID_PIN, HIGH);
}
else {
digitalWrite(SOLENOID_PIN, LOW);
}
}
/*
Since SolenoidState is READ_WRITE variable, onSolenoidStateChange() is
executed every time a new value is received from IoT Cloud.
*/
void onSolenoidStateChange() {
// Add your code here to act upon SolenoidState change
/*
if (solenoidState) {
digitalWrite(SOLENOID_PIN, HIGH);
}
else {
digitalWrite(SOLENOID_PIN, LOW);
}
*/
}
/*
Since WaterScheduler is READ_WRITE variable, onWaterSchedulerChange() is
executed every time a new value is received from IoT Cloud.
*/
void onWaterSchedulerChange() {
// Add your code here to act upon WaterScheduler change
}
Subscribe to:
Posts (Atom)