Hallo,
Ich heiße Abhay Kant. Ich lebe in Delhi, India. Meine mutter ist Lehrerin.
Ich habe ein website. Mein website heiße exasub.com. Ich habe degree in Electroniks und kommunikation Ingenieurwesen. Dort schreibe ich über Halbleiterbauelemente und Mikrocontroller. Ich schreibe kleinen Code in C-Sprache
Ich kennen drei sprachen Englisch, Hindi und deutsch.
To calculate the value of a resistor from colour codes.
Then, First, you have to locate the Tolerance band. The tolerance band mostly in most of the resistors is made from either gold colour or silver colour.
Then you need to look at the next band which tells you the multiplier.
Then you need to look at the opposite end of the resistor and note down the colour in order till the multiplier.
The first band from the left gives us the first digit. The next band gives the next digit.
A resistor is an electronic component that offers resistance in the flow of current. The practical resistor has a slight shift in its values from the ideal counterparts.
Not all the values of the resistor are available in the market. There is a certain number that is chosen and is readily available. If a particular value is to be achieved then a combination made from the selected resistors is to be used.
An ideal resistor follows Ohm’s law.
A practical resistor changes its value if the surrounding temperature, pressure and changes in mechanical dimension etc. Though there are very nominal changes yet they differentiate the ideal resistor from the practical counterpart.
The resistors value is generally marked on the surface. If the resistor is big, standard values along with manufacturing company seal are also printed on top of it.
For very small resistors; either colour bands or some code is written on top of it. As the size goes on decreasing the surface area becomes small and reaches a point where it is not feasible to print anything that can be visible to the naked eye. Then the values are written beside the component.
10 Kilo Ohm Through Hole Type Resistor
SMD Resistor with value code written on it
SMD resistor with a reference to value is printed beside it.
There are two types of resistors.
Fixed Value resitors
Variable Value Resistors
It is important to consider the power dissipation of a resistor. Since resistor obstructs the flow of current. The obstruction causes a buildup of energy which needs to dissipate. If this energy is not released then it will burn the resistor or permanently change its resistance values. So resistors use heat to dissipate the energy.
for example: Let’s consider an 8-ohm resistor that resists the flow of current.
A voltage source of 9V has connected across. The 8-ohm resistor drops the voltage from 8V to 0V. Blocking a significant portion of voltage that is 8V. and Let’s say the current flowing in the circuit is one Ampere. So the resistor needs to dissipate 8W of energy. Now you need to select a resistor that can dissipate more than 8W of energy. and the next best option is to use a resistor of 10 watts.
Now to perform Fourier transform on this sequence.
DFT Formula
Here X(k) is the DFT of x(n)
‘k’ is the index representing individual frequency component
‘N’ is the Length of the sample sequence
‘n’ is an index of the element of the sequence in x(n)
For example: if we calculate the value for k =1
This will give us the X(1)
So, if the sequence is sampled at 4Hz and the sampling frequency is equal to two times the max frequency. Then X(1) gives us the 1 Hz frequency component.
To calculate Euler identity
Here is the code:
/*
* Author: ABHAY KANT
* Discrete Fourier Transform using STM32L476vg on STM32L476g-Disco board.
* computes N point DFT
* computes magnitude of N/2 Points of dft
* computes phase of N/2 points of dft
* NOTE: DFT array is named xfft. It DOES NOT Calcultes DFT using FFT algo.
* Limitations: for a 2000 point sequence it takes a lot of time.
And as the number of points increase the computational time also increases.
a rough estimate of time for a 2000 point dft it takes roughly ~ 60 seconds.
*/
asm("nop");
//int xn[6] = {1,1,2,2,3,3};
int16_t Len = 1024;
float xn[Len];
float xfft[Len * 2];
/*
* calculating phase and mag for only N/2 since the value generated after N/2 are conjugate
*/
float phase[Len/2], mag[Len/2];
int k = 1;
int N = 0;
int n = 0;
float real = 0;
float imag = 0;
float param = 0;
int freq = 10;
int i;
/*
* These two "for loops" are used to initalize the array with zero's
*/
for(n=0;n<=Len;n++){xn[n] = 0;}
for(n=0;n<=Len*2;n++){xfft[n] = 0;}
/*
* Generating a sine Wave
*/
for(i=0; i<Len/2; i++){
xn[i+512] = sin((2 * 3.1415926 * i * freq)/Len);
}
N = Len;
/* Note: if Len/8 then it will only calculate the 1/8 th term from 0 only.*/
/*
* This loop calculates the x[n].e^(-j2.PI.n.k/N)
*/
for(k=0 ; k<N ; k++){
for(n=0 ; n<N; n++){
param = ((2 * M_PI * n * k)/N);
real = real + ( xn[n] * cos(param) );
imag = imag + ((-1) * xn[n] * sin(param) );
}
xfft[2 * k] = real;
xfft[(2 * k) + 1] = imag;
real = 0;
imag = 0;
}
/*
* Calculate phase angle of each frequency component
*/
float temp;
for(k=0; k<N/2;k++)
{
temp = xfft[(2 * k ) + 1] / xfft[2 * k];
phase[k] = atan(temp);
}
/*
* Calculate Magnitude of each frequency
*/
for(k=0; k<N/2;k++)
{
temp = sqrt( (xfft[(2 * k ) + 1] * xfft[(2 * k ) + 1] ) + ( xfft[2 * k] * xfft[2 * k] ) );
mag[k] = temp;
}
asm("nop"); //added to support for creating breakpoint during debug
To use the internal LCD driver of stm32l476; the best way is to use the LCD driver provided in the BSP. It is located inside the STM32Cube_FW_L4_V1.16.0 repository.
Go to the ..\STM32Cube\Repository\STM32Cube_FW_L4_V1.16.0\Drivers\BSP\STM32L476G-Discovery
Copy the stm32l476g_discovery.c, stm32l476g_discovery.h, stm32l476g_discovery_glass_lcd.c and stm32l476g_discovery_glass_lcd.h
Paste the files in your project.
Include the header file in your project. #include “stm32l476g_discovery_glass_lcd.h”
After this you need to
Initialize the LCD segment BSP_LCD_GLASS_Init();
Clear the LCD RAM BSP_LCD_GLASS_Clear();
Write Data in LCD RAM BSP_LCD_GLASS_DisplayChar((uint8_t *)”A”, POINT_ON, DOUBLEPOINT_OFF, 1);