This is my make-through for the week's assignment.
Grab a cup of coffee! Buckle up your seat belt! Enjoy the upcoming greatness!
Designing input and outputs PCBs.
More practice on soldering parts, I am way better now.
Deep understanding of using Multiplexer.
Deep understanding of using Shift Register.
Used boards for this week
Step1: I followed the provided schematics closely with searching around for footprints.
Step2: There was no drama in here it was a straightforward process.
Step3: The routing for the boards was super easy and I didn't use any bridges.
Input board
Output board
Step1: I sat the DRC from the beginning so I didn't face any problems.
Step2: Preparing pdf & png files was straightforward no drama.
Step3: Thanks to Amny for helping and supporting during using Fab modules and the machine.
I/O boards
Step1: I am definitly better and faster in this process.
Output board to the left & input board to the right
Step1: I went over the videos many times. I understood the concept and logic behind the components but I still couldn't understand the coding parts.
Step2: Ahmed Ibrahim helped with explaining the datasheet for the MUX.
Step3: I did a small testing code for this board by selecting (I3) from the mux which is the dip switch (4), then I took the Mux output to power up a small led.
Step4: I programed the ATTINY44 board to do the above logic.
Step5: I had a very stupid issue and I asked the group. Apparently, I didn't store the value of the mux out and went straight to put it into comparison and of course Ahmed Ibrahim to the help with some sarcasm hehehe.
Step1: I went over the videos many times. I understood the concept and logic behind the components but I still couldn't understand the coding parts.
Step2: I watched this video and it helped a lot with using the Shift register.
Step3: I did a small testing code for this board by lighting up each color on the RGB by input and output a shift number at a time for the shift register. For example, input (2) to light up Red, input (5) to light up Green, ...
Step4: I programed the ATTINY44 board to do the above logic.
Step5: I didn't face issues with this one.
Step1: Used boards I/O boards, ATTINY44 & USBasp to upload the code to ATTINY44.
Step2: wiring input board to ATTINY44
S0 (pin 11) to pin 0
S1 (pin 10) to pin 1
S2 (pin 9) to pin 2
Mux out (pin 5) to pin 3
Vcc (pin 16) to 5V
GND (pin 8) to ground
Step3: wiring output board to ATTINY44
Serial Data (pin 14) to pin 6
Shift Clock (pin 12) to pin 7
Latch Clock (pin 11) to pin 8
Vcc (pin 16) to 5V
GND (pin 8) to ground
Step4: For the input board I divided the code into 4 functions each one named with (Mux input number)_(Dip switch number).
Step5: I followed the truth table in this datasheet to select my dip switch. So each function digital writes the mux selector pins to select the input from the 4 switches in the dip switch and saves into a variable the mux output through a digital read.
Step6: I condition the mux out to true or false and depending on that, I know the state of the dip switch H or L.
Step 7: Function 1-I0_DIP1(). If the dip switch is H (mux out is H) then I shift count 2 to the shift register which turns into binary and lights up the Red color on the output board and of course pulse H the latch pin. If the dip switch is L (mux out is L) then I shift count 0 to the shift register which turns into binary and turns off the Red color in the RGB.
Step8: Function 2-I1_DIP2(). If the dip switch is H (mux out is H) then I shift count 8 to the shift register which turns into binary and lights up the Green color on the output board and of course pulse H the latch pin. If the dip switch is L (mux out is L) then I shift count 0 to the shift register which turns into binary and turns off the Green color in the RGB.
Step9: Function 3-I2_DIP3(). If the dip switch is H (mux out is H) then I shift count 4 to the shift register which turns into binary and lights up the Blue color on the output board and of course pulse H the latch pin. If the dip switch is L (mux out is L) then I shift count 0 to the shift register which turns into binary and turns off the Blue color in the RGB.
Step10: Function 4-I3_DIP4(). If the dip switch is H (mux out is H) then I shift count 255 to the shift register which turns into binary and lights up the White color on the output board and of course pulse H the latch pin. If the dip switch is L (mux out is L) then I shift count 0 to the shift register which turns into binary and turns off the White color in the RGB.
4 Dip switches & 4 colors from RGB led
Converting Shift count to binary
Step1: Used boards I/O boards, ATTINY44 & USBasp to upload the code to ATTINY44.
Step2: wiring input board to ATTINY44
S0 (pin 11) to pin 0
S1 (pin 10) to pin 1
S2 (pin 9) to pin 2
Mux out (pin 5) to pin 3
Vcc (pin 16) to 5V
GND (pin 8) to ground
Step3: wiring output board to ATTINY44
Serial Data (pin 14) to pin 6
Shift Clock (pin 12) to pin 7
Latch Clock (pin 11) to pin 8
LED_Vcc to pin 5
Vcc (pin 16) to 5V
GND (pin 8) to ground
Step4: I change the reference voltage and the LED works fine.
Step5: After some playing around with the code testing to power it up with the dip switches the LED worked fine, which means the wiring is correct.
Step6: I had to ask on the group and of course I had a problem with the code that I should read digital data from the mux out and op_amp out.
Step7: I edited the code and I still didn't make it work using the thermistor.
Trial #1(Unsuccessful): Thermistor & High power LED
What I learned this week is...
More practice with design in Eagle.
More practice on soldering components.
Deep understanding of using Multiplexer.
Deep understanding of using Shift Register.