Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:iot-open:introductiontoembeddedprogramming2:cppfundamentals:analog_io [2023/11/17 16:52] pczekalskien:iot-open:introductiontoembeddedprogramming2:cppfundamentals:analog_io [2023/11/23 10:21] (current) pczekalski
Line 1: Line 1:
 ====== Manipulating analogue signals ====== ====== Manipulating analogue signals ======
 +{{:en:iot-open:czapka_b.png?50| General audience classification icon }}{{:en:iot-open:czapka_m.png?50| General audience classification icon }}{{:en:iot-open:czapka_e.png?50| General audience classification icon }}\\
 The analogue inputs and outputs are used when the signal can take a range of values, unlike the digital signal that takes only two values (//HIGH// or //LOW//).  The analogue inputs and outputs are used when the signal can take a range of values, unlike the digital signal that takes only two values (//HIGH// or //LOW//). 
  
-=== Analog input ===+==== Analog input ====
 For measuring the analogue signal, microcontrollers have built-in **analogue-to-digital converter** (ADC) that returns the digital value of the voltage level. Usually, the binary number corresponds to the input voltage, not the value in Volts. The number of bits of the output value depends on the accuracy and internal construction of the converter and usually varies between 8 and 12. For measuring the analogue signal, microcontrollers have built-in **analogue-to-digital converter** (ADC) that returns the digital value of the voltage level. Usually, the binary number corresponds to the input voltage, not the value in Volts. The number of bits of the output value depends on the accuracy and internal construction of the converter and usually varies between 8 and 12.
  
Line 22: Line 23:
 </note> </note>
  
-=== Analog output ===+==== Analog output ====
 Unlike analogue input, the analogue output does not generate varying voltage directly on the pin. In general, it uses the technique known as (//Pulse Width Modulation// (//PWM//)) that generates a high/low square signal of stable frequency but varying duty cycle (ratio of active and passive periods of the signal). Details are described later in the book. Because the PMW signal can provide different average power to the external element, e.g. LED, it can be considered analogue output. Unlike analogue input, the analogue output does not generate varying voltage directly on the pin. In general, it uses the technique known as (//Pulse Width Modulation// (//PWM//)) that generates a high/low square signal of stable frequency but varying duty cycle (ratio of active and passive periods of the signal). Details are described later in the book. Because the PMW signal can provide different average power to the external element, e.g. LED, it can be considered analogue output.
  
Line 47: Line 48:
  
 <code c> <code c>
-#define LED_pin 3              //the pin number is chosen to support PWM generation+#define LED_pin 3          //the pin number is chosen to support PWM generation
  
 void setup() { void setup() {
Line 53: Line 54:
 } }
  
-int value;                     //variable that holds the result of analogue reading+int value;                 //variable that holds the result of analogue reading
  
 void loop() { void loop() {
-  value = analogRead(A0);      //analogRead on Arduino Uno returns the value in the range 0 - 1023 +  value = analogRead(A0);  //analogRead on Arduino Uno returns the value 0-1023 
-  value = value >> 2;          //it should be converted to the value of the range 0 - 255+  value = value >> 2;      //it should be converted to the value 0-255
   analogWrite(LED_pin, value); //writing converted value to PWM output   analogWrite(LED_pin, value); //writing converted value to PWM output
 } }
en/iot-open/introductiontoembeddedprogramming2/cppfundamentals/analog_io.1700239931.txt.gz · Last modified: 2023/11/17 16:52 by pczekalski
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0