Sunday, October 17, 2021

Arduino: Lesson 8 - Using LDR Sensor and reading values on Serial Monitor

 

Fig. 1 - Using LDR Sensor and reading values on Serial Monitor

Welcome to Lesson 8 - Basic Arduino Course

In today's lesson, we will learn how to use an LDR sensor and read values on a Serial Monitor with Arduino. 

To measure light intensity, we will use the famous and widely used low-cost LDR (Light Dependent Resistor) sensor, to detect the intensity of light or darkness easily and cheaply.

LDR (Light Dependent Resistor) Sensor

LDR is a special type of resistor that passes higher voltage (low resistance) when light intensity is high and low voltage (high resistance) when darkness is low. 

With this method, we can use it for example in projects such as:

  • Lack of Light Alarm - Triggers an alarm when power is cut.
  • Brightness Control - Used to control the brightness of a recording or filming environment for example.
  • Contrast Control Screen - Often used on mobile phones to automatically lower or increase the brightness of the Display.
  • Emergency Light - Automatically turns on when Light is cut.
  • Ticket Counter - Also used to count people at the entrance of an establishment.
  • Invasion Alarm - Used to trigger an alarm when there is an invasion of the monitored establishment. 

In today's example, we will use this sensor to measure numerical resistance and read these values from the serial monitor.

To do this, we will use the Arduino analog Port A0. We can use any analog Port, in case of Arduino Uno there are 6 ports; A0 to A5.

Hardware Required

  • Arduino Board
  • LDR - Sensor Dependent Light
  • 100K ohms resistor - (Brown, black, yellow, gold)
  • Jumper Wires
  • Protoboard (optional)

The Circuit Connections

The circuit is very simple, we connect one leg of the LDR to positive 5V, and another leg to the 100K resistor in series with negative GND, and the same leg that takes the resistor and LDR, we connect to port A0, as shown in Figure 2 below.

Fig. 2 - Using LDR Sensor and reading values on Serial Monitor - tinkercad.com

We use a protoboard to facilitate the connections, but you can also connect the wires directly to the Arduino.

The Code

The analogReads() function, reads the value from the specified analog pin. Arduino boards contain a multichannel, 10-bit analog to digital converter. This means that it will map input voltages between 0 and the operating voltage(5V or 3.3V) into integer values between 0 and 1023

On an Arduino UNO, for example, this yields a resolution between readings of: 5 volts / 1024 units or, 0.0049 volts (4.9 mV) per unit

After building the circuit, connect your Arduino board to your computer, launch Arduino Software (IDE), copy the code below and paste it into your Arduino IDE. But first let us understand the code line by line. 

  • In Line 3, we declared sensorPin to select the analog input Pin A0 to connect the LDR.
  • In Line 4, we declared sensorValue as a variable to store the value coming from LDR sensor.

  • In Line 6we enter the void setup() function. This function is read only once when the Arduino is started.
  • In Line 7, we sets the serial port for communication, we will read the numeric value from LDR sensor. 
1
2
3
4
5
6
7
8
9
// Arduino Lesson 8 - Using LDR Sensor and reading values on Serial Monitor with Arduino

int sensorPin = A0;        // Select the Analog input pin for LDR
int sensorValue = 0;       // Variable to store the value coming from the sensor

void setup() {                // This function is called once when the program starts
 Serial.begin(9600);       // Sets Serial Port for communication with bounce rate in 9600
}
//------------------------------------- www.elcircuits.com --------------------------------------------
  • In Line 10, we enter in the loop() function does precisely what its name suggests, and loops consecutively.

  • In Line 11, the sensorValue variable, receives the value read from sensorPin, which is the analog input Pin, and stores the read values.

  • In Line 12, the Serial.println() function, prints the values from the variable sensorValue on the serial monitor screen.
1
...
10
11
12
13
14
// Arduino Lesson 8 - Using LDR Sensor and reading values on Serial Monitor with Arduino

void loop() { // The loop function runs over and over again as long as the Arduino has power.
sensorValue = analogRead(sensorPin);    // Read the value from the sensor
Serial.println(sensorValue);                      // Prints the values coming from the sensor on the Serial Monitor
}
//------------------------------------- www.elcircuits.com --------------------------------------------
Below you can see the full code, which we can be copying and pasting into your Arduino IDE, and uploading to Arduino.

The complete code is showed in the sketch below!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// Arduino Lesson 8 - Using LDR Sensor and reading values on Serial Monitor with Arduino

int sensorPin = A0;        // Select the Analog input pin for LDR
int sensorValue = 0;       // Variable to store the value coming from the sensor

void setup() {               // This function is called once when the program starts  
 Serial.begin(9600);      // Sets Serial Port for communication with bounce rate in 9600
}

void loop() { // The loop function runs over and over again as long as the Arduino has power.
sensorValue = analogRead(sensorPin);     // Read the value from the sensor
Serial.println(sensorValue);                       // Prints the values coming from the sensor on the Serial Monitor
}
//------------------------------------- www.elcircuits.com --------------------------------------------

All ready! After you have assembled the entire circuit, and uploaded this code, open the Serial Monitor and what you will see is the numerical value of the LDR.

When you approach the hands of the LDR inhibiting the Light, the number will drop to the minimum possible, it will depend on the LDR, and when you shine a light on the sensor, the number will go to the maximum of the sensor.
With that, the possibilities are immense, to work with this sensor.

Next Lesson

Previous Lesson

If you have any questions, suggestions or corrections, please leave them in the comments and we will answer them soon.

Subscribe to our blog!!! Click here - elcircuits.com!!!

My Best Regards!!!

Tuesday, October 12, 2021

180W RMS 4-Channel Amplifier using TDA7386 + PCB

Fig 1 - 180W RMS 4-Channel Amplifier with TDA7386 PCB

Para versão em Português, Clique Aqui!!!

The TDA7386 four-output integrated circuit is a class AB amplifier rated at 180W RMS "unbalanced power supply" in a single package with few external components.

This audio amplifier is designed for Sony®, Kenwood®, Pioneer® and other high performance car radios.

Features

  • High output power capacity:
  • 4 x 45W / 4Ω max.
  • 4 x 28W / 4Ω @ 14.4V, 1KHz, 10%.
  • 4 x 24W / 4Ω @ 13.2V, 1KHz, 10%
  • Low distortion
  • Low output noise
  • Stand-by function
  • Mute function
  • Auto- mute function when minimum supply voltage is detected
  • Low number of external components:
  • Internal fixed gain (26dB)
  • No external compensation
  • No bootstrap capacitors

You might also be interested in:


Based on the TDA7386 IC, it is also ideal for use in home studio amplifiers, computers with quadraphonic sound cards such as SoundBlaster Live! Creative Labs Inc. or MosterSound Diamond Multimedia / S3, Active Box, home theater, etc...

Each channel of the TDA7386 provides 45W RMS with a sufficient power of 14.4 volts, at a load of 4 ohms and a distortion factor of about 10%.

The amplifier schematic shown in Figure 2 is a simple design with few external components, making it an easy amplifier to build.
Fig. 2 - 180W RMS 4-Channel Amplifier with TDA7386 Schematic

Components List

  • IC 1 ..................... Integrated circuit TDA7386
  • R1  ...................... 47K resistor (yellow, purple, orange)
  • R2  ...................... 10K resistor (brown, black, orange)
  • C1, C2  ............... 1μF electrolytic capacitor
  • C3 ....................... 100nF electrolytic capacitor
  • C4  ....................... 220μF electrolytic capacitor
  • C5, C6, C7, C8  ....100nF electrolytic capacitor
  • C9  ....................... Electrolytic capacitor 470nF
  • C10  ..................... Electrolytic capacitor 47μF
  • B1  ....................... 2-Pin Board-Cable Connector
  • B2 ........................ 5-Pin Board-Cable Connector
  • B3, B4, B5, B6  ... 2-pin board cable connector
  • Others .................. PCB, tin, wires, etc.

Power supplies

For lovers of amplifiers with IC, it is best to have a simple power supply, because many have simple variable test bench sources that make testing much easier, in addition to an audio amplifier power for the car, we will necessarily have the simple power supply.

Since this amplifier operates at low voltage, the consumption is quite high. According to Ohm's law, we can calculate this current as follows, using the formula.
P = V * I

Where;
  • P = power, V = voltage, I = current.
Soon;
  • I = P / V
  • I = 180/14.4
  • I = 12.5 A
Due to the high current consumption indicated in the above formula, the connections to ground and to the power supply must be made with extreme care.

In car radios, the heat sink is small, but it is in contact with the radio housing, which is made of metal, which greatly facilitates heat dissipation.

For home amplifiers, which are usually in constant use, a good heat sink should be used. "It depends on how you are going to use it," you say, putting a cooler on the heatsink like the ones used in ATX computers.

Download

We provide the files with the PCB, the schematic, the PDF, GERBER and JPG, PNG and provide a direct link for free download and a direct link, "MEGA".

Click on the direct link to download the files: Layout PCB, PDF, GERBER, JPG


If you have any questions, suggestions or corrections, please leave them in the comments and we will answer them soon.

Subscribe to our blog!!! Click here - elcircuits.com!!!

My Best Regards!!!

Sunday, October 10, 2021

Arduino: Lesson 7 - Controlling LED Through Serial Monitor with Arduino

  

Fig 1 - Arduino: Lesson 7 - Controlling LED Through Serial Monitor with Arduino

Welcome to Lesson 7 - Basic Arduino Course

In today's lesson we will learn how to control the state of a LED via the Serial Monitor using the Arduino IDE.

We will use the Serial.readString() function which will cause the Arduino to interpret the sentence you have entered into the serial monitor, e.g. "Turn on the led". If you press ENTER Key in you computer, the LED will be turned on, if you want to turn off the LED just write the message "Turn off the LED".

With this method we can use it in different projects such as:

  • Load activation - Turns one or more loads on or off using commands.
  • Motor Speed Control - Use Serial Monitor to send the speed at which a PWM motor should run.
  • Calibrate a sensor's constant - We can create software to change a sensor's constant to a specified value if needed.

In our example today, we are using the serial monitor to trigger a LED, but you can also use a relay module to drive a motor, for example.

To do this, we will use the D9 digital port on Arduino. We can use any digital port we want. Just change the port you want to use in the declaration or the one that is available on your Arduino.

Required hardware

  • Arduino board
  • LED - Light Emitter Diode 220 Ohm Resistor - (red, red, brown, gold)
  • Jumper wires
  • Protoboard (optional)

The circuit

The circuit is quite simple. We connect a LED in series with a 220 ohm resistor to limit the current in the LED as we learned in previous lessons, and we connect the 9-port of the Arduino UNO as shown in Figure 2 below.

Fig. 2 - Controlling LED Through Serial Monitor with Arduino - tinkercad.com

We use a protoboard to facilitate the connections, but you can also connect the wires directly to the Arduino.

The code

The Serial.readString() function reads characters from the serial buffer and moves them to a given string.

In our example, we want to do something very simple, which is to turn on and off a LED using the command from Serial Monitor.

After building the circuit, connect your Arduino board to your computer, run the Arduino software (IDE), copy the code below and paste it into your Arduino IDE.

But first let us understand the code line by line.

  • In Line 3, we declared ledPin to digital Pin 9 where we connect the LED to the digital Pin 9
  • In Line 4, we declared the DataIn String that will receive the Serial Monitor Commands
  • In Line 6we enter the void setup() function. This function is read only once when the Arduino is started.
  • In Line 7, we begin serial communication by declaring the Serial.begin() function. At 115200 bits of data per second, this is the speed at which your computer will communicate with your Arduino Serial.
  • In Line 8, we define Port 9 as the output, using the pinMode(); function;
1
2
3
4
5
6
7
8
9
// Arduino: Lesson 7 - Controlling LED Through Serial Monitor with Arduino

int ledPin = 9;                                    // LED connected to digital pin 9
String DataIn;                                    // String that will receive the commands

void setup() {                                    // This function is called once when the program starts
Serial.begin(115200);                       // Begin the Serial Monitor with bounce rate in 115200
pinMode(ledPin, OUTPUT);            // Set the digital pin as output:
}
//------------------------------------- www.elcircuits.com --------------------------------------------
  • In Line 11, we enter in the void loop() function does precisely what its name suggests, and loops consecutively.
  • In Line 12, we enter in a if conditional, for to check if the Serial Monitor is available, if yes we call the next function.
  • In Line 13, we call the Serial.readString() function to read the characters from the Serial Monitor and send them to the String DataIn.

  • In Line 15we enter the if conditional, in this case to compare if the characters are the same as written in the Serial Monitor, in our example "turn led on", if yes...
  • In Line 16, we enter the digitalWrite function, command activates ledPin to HIGH level, it means that it goes from 0V to 5V, which turn the LED On.

  • In Line 17, we enter the if conditional, that compare if the characters are the same as written in the Serial Monitor, in our example "turn led off", if yes...
  • In Line 18, we enter the digitalWrite function, command desable ledPin to LOW level, it means that it goes from 5V to 0V, which turn the LED Off.
1
...
11
12
13
14
15
16
17
18
19
20
21
// Arduino: Lesson 7 - Controlling LED Through Serial Monitor with Arduino

void loop() { // The loop function runs over and over again as long as the Arduino has power
  if (Serial.available()) {                   // Check if there is any data on the serial monitor
    DataIn = Serial.readString();       // String DataIn receives the data typed in the Serial Monitor
  }
 if (DataIn == "turn led on") {          // Check if the received String is equal to "turn led on"  
    digitalWrite(ledPin, HIGH);         // If yes, the function digitalWrite turn Led ON
  } if (DataIn == "turn led off") {     // Check if the received String is equal to "turn led off" 
    digitalWrite(ledPin, LOW);         // If yes, the function digitalWrite turn Led OFF 
  }
}
//------------------------------------- www.elcircuits.com --------------------------------------------

B
elow you can see the full code, which we can be copying and pasting into your Arduino IDE, and uploading to Arduino.

The complete code is showed in the sketch below!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Arduino: Lesson 7 - Controlling LED Through Serial Monitor with Arduino

int ledPin = 9;                                    // LED connected to digital pin 9
String DataIn;                                    // String that will receive the commands

void setup() {                                    // This function is called once when the program starts  
Serial.begin(115200);                       //Begin the Serial Monitor with bounce rate in 115200
pinMode(ledPin, OUTPUT);            // Set the digital pin as output:
}

void loop() { // The loop function runs over and over again as long as the Arduino has power
  if (Serial.available()) {                   // Check if there is any data on the serial monitor
    DataIn = Serial.readString();       // String DataIn receives the data typed in the Serial Monitor
  }
 if (DataIn == "turn led on") {          // Check if the received String is equal to "turn led on"  
    digitalWrite(ledPin, HIGH);         // If yes, the function digitalWrite turn Led ON
  } if (DataIn == "turn led off") {     // Check if the received String is equal to "turn led off" 
    digitalWrite(ledPin, LOW);         // If yes, the function digitalWrite turn Led OFF 
  }
}
//------------------------------------- www.elcircuits.com --------------------------------------------

Next Lesson

Previous Lesson

If you have any questions, suggestions or corrections, please leave them in the comments and we will answer them soon.

Subscribe to our blog!!! Click here - elcircuits.com!!!

My Best Regards!!!

Friday, October 8, 2021

4 x 50W High Power Amplifier, 14.4V - IC TDA7563A + PCB

Fig 1. - PCB 4 x 50W High Power Amplifier, 14.4V - IC TDA7563A

Para versão em Português, Clique Aqui!!!

This is a 200W High Power Amplifier Circuit, and its great trump card is that it works with a simple power source and still at 14.4V, which means we can plug in a 12V car battery, or motorbike battery, or UPS battery, etc.

Also, the circuit is very easy to build as it requires very few external components.

The TDA7563A is a quad-bridge type amplifier of BCD technology in Flexiwatt27 and Power SO36 packages designed specifically for car radio applications.

Thanks to the DMOS output stage, the TDA7563A has very low distortion, which allows for clear and powerful sound. 

Features include its superior efficiency performance resulting from the unique internal system structure, making it the device best suited to simplify thermal management in high power packages.

This device is equipped with a complete diagnostic matrix that communicates the status of each speaker via the I2C bus.

You might also be interested in:

Features

  • Multiple Power BCD Technology
  • MOSFET output power stage
  • DMOS power output
  • New high efficiency technology (SB class)
  • High output power capacity 4x28W / 4Ω @ 14.4V, 1kHz, 10% THD, maximum power 4x50W
  • Maximum output power 4x72W / 2Ω
  • Complete conduction of I2C bus:
  • Standby
  • Front/rear independent, smoothed play/mute
  • Selectable 26dB / 12dB gain (for low noise line output function)
  • Enable / disable high efficiency
  • I2C bus digital diagnostics (including DC AC load detection)
  • Total failure protection
  • DC offset detection
  • Four independent short circuit protection
  • Cutting Detector Pin with Selectable Threshold (2% / 10%)
  • Standby/mute pin
  • Linear thermal shutdown with multiple thermal warnings
  • ESD protection

In Figure 2 below, you can see the schematic of the High Efficiency Power Amplifier. We can understand and analyze the simplicity of the circuit and see that it is an easy to assemble circuit with few external components.

Fig 2 - Schematic Diagram 4 x 50W High Power Amplifier, 14.4V - IC TDA7563A

Power Supply

This amplifier is powered by a single positive and negative voltage power supply and has a supply voltage range that varies with a minimum voltage of 8V and a maximum voltage of 18V

The typical working voltage with no load on the integrated circuit is 14.4V.

The power supply must have a current of at least 5 amps to be used in mono mode, when mounted in stereo version, "two channels", the current must be doubled, and it must also be provided with a good filtering to avoid a ripples system that can cause noise in the amplifier.

The working impedance value of this amplifier to reach its total power is 4 ohms, but we can also set it to 8 ohms, but then we will not get the maximum power from the amplifier.

Components List

  • CI1 ......................... Integrated Circuit TDA7563A
  • C1, C2, C3, C4 ...... 220nF Ceramic / Polyester Capacitors
  • C5 ........................... Capacitors 1uF / 63v
  • C6 ........................... Electrolytic Capacitor 10uF / 63v
  • R1 ........................... 47K Ohm resistors
  • R2 ........................... 8K2 ohm resistor
  • R3 ........................... Resistor 4K7 ohms
  • P1 to P9 .................. KF301 solderable 2-Pin Bolt-On Connector (Optional)
  • J1............................. 3 Ways 1x3 Weldable Male Pin Bar
  • Others ..................... Heatsink for IC, wires, connectors, PCI, tin etc.

We provide the files with the PCB, the schematic, the PDF, GERBER and JPG, PNG and provide a direct link for free download and a direct link, "MEGA".

Direct Download Link

Click on the link to download the files: Layout PCB, PDF, GERBER, JPG

If you have any questions, suggestions or corrections, please leave them in the comments and we will answer them soon.

Subscribe to our blog!!! Click here - Elcircuits.com!!!

My Best Regards!!!