Craig Hollinger
Craig Hollinger
  • 51
  • 649 532
Going Beyond Arduino #15: Variables
This video goes into more detail about variables. In it, I talk about how much space each variable type takes up in RAM and the scope (visibility) of variables.
The source for the code in the video is on my GitHub site:
github.com/hollingerc/going-beyond-arduino/blob/master/variables.c
The source for the UART code:
github.com/hollingerc/AVR/tree/master/UART
มุมมอง: 1 392

วีดีโอ

Going Beyond Arduino #14: Pointers
มุมมอง 6K6 ปีที่แล้ว
In this video, I explain what a pointers are in C and how to use them. The code for the demo program used in the video can be found at: github.com/hollingerc/going-beyond-arduino/blob/master/pointers.c
Going Beyond Arduino #13: SPI Serial Bus
มุมมอง 3.2K6 ปีที่แล้ว
This video looks at the SPI protocol, the SPI hardware inside the ATMEGA328 and the SPI driver software I wrote. My previous videos on the I2C bus where I went into more detail on the code for the sensors and display: Part 1: th-cam.com/video/tnpITlgzz04/w-d-xo.html Part 2: th-cam.com/video/RTHoPjPXd-Y/w-d-xo.html Wikipedea article: en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus ATMEG328...
Going Beyond Arduino #12: I2C Serial Bus, Part 2
มุมมอง 3.1K7 ปีที่แล้ว
In part two I go through the software I wrote for the example shown at the beginning of part 1. Part 1: th-cam.com/video/tnpITlgzz04/w-d-xo.html Data sheets: These sensors are quite old, their data sheets aren't available on the manufacturer's web sites any more and the display driver manufacturer wanted a sign in, so you have to go elsewhere to find them. Thanks Google Search. ADXL345 accelero...
Going Beyond Arduino #12: I2C Serial Bus, Part 1
มุมมอง 6K7 ปีที่แล้ว
This first part looks at the I2C protocol, the hardware inside the ATMEGA328 and the I2C driver software I wrote. ATMEG328 data sheet: www.atmel.com/images/atmel-42735-8-bit-avr-microcontroller-atmega328-328p_datasheet.pdf Wikipedea article: en.wikipedia.org/wiki/I²C Source code for the I2C driver: github.com/hollingerc/AVR/blob/master/I2C/i2c.c github.com/hollingerc/AVR/blob/master/I2C/i2c.h
Going Beyond Arduino # 11: Using the UART Serial Port (part 2)
มุมมอง 4.2K7 ปีที่แล้ว
This is the second part of the video series on the Serial Port. In this video the software for implementing a serial port using the UART is discussed. Source code for the DDS: github.com/hollingerc/going-beyond-arduino/blob/master/pwmVariableDDS.c Source code for the UART: github.com/hollingerc/AVR/tree/master/UART
Going Beyond Arduino # 11: Using the UART Serial Port (part1)
มุมมอง 7K7 ปีที่แล้ว
By using the microcontroller UART serial port, the frequency of the DDS can be easily varied by typing a new frequency on a PC keyboard. This video introduces the serial port on the ATMEG328 microcontroller and discusses how to setup the control registers to get it working. Part 2 of this video discusses the software. Source code for the DDS: github.com/hollingerc/going-beyond-arduino/blob/mast...
Going Beyond Arduino # 10: PWM D-to-A vs R2R Ladder D-to-A
มุมมอง 20K7 ปีที่แล้ว
In this video I introduce another type of D/A converter, the R2R Ladder. I discuss the benefits and limitations of both. Link to a schematic of the R2R Ladder: github.com/hollingerc/going-beyond-arduino/blob/master/LadderDDS Schematic.pdf
Going Beyond Arduino # 9: PWM as Direct Digital Synthesis
มุมมอง 11K7 ปีที่แล้ว
In this video I demonstrate a more versatile method of digitally generating a signal called Direct Digital Synthesis (DDS). The frequency of the signal can now be varied, but only by re-compiling the code. I'll demonstrate a method of making frequency changes on-the-fly in a future video. Source code available at: github.com/hollingerc/going-beyond-arduino/blob/master/pwmDDS.c
Going Beyond Arduino # 8: PWM as a Digital to Analog Converter
มุมมอง 38K7 ปีที่แล้ว
By connecting a low-pass filter to the PWM output, we are able to generate a voltage. The voltage can be varied by varying the PWM duty cycle. This video demonstrates this by generating a sine wave. Previous video on PWM: th-cam.com/video/j2TYdMfqI_c/w-d-xo.html Source code is available at: github.com/hollingerc/going-beyond-arduino/blob/master/pwmDAC.c
Going Beyond Arduino #7: Typdef, Struct and Union
มุมมอง 13K8 ปีที่แล้ว
This video demonstrates the use of Typedef, Struct and Union. They are then used to declare variables that help in configuring Timer/Counter 0 and 2. The code examined in this video is available on my GitHub site. The timer/counter driver code is at: github.com/hollingerc/AVR/tree/master/Timer The StructPWM program is at: github.com/hollingerc/going-beyond-arduino/blob/master/StructPWM.c Some u...
Going Beyond Arduino #6: Timer 0 and PWM
มุมมอง 8K8 ปีที่แล้ว
This video continues on from the previous one and describes how to set up Timer 0 to generate two PWM outputs. The source code is available here: github.com/hollingerc/going-beyond-arduino/blob/master/FastPWM.c
Going Beyond Arduino # 5, Part 2: Blink using Timer 0
มุมมอง 3.5K8 ปีที่แล้ว
In continuing with the theme of blinking LEDs, this video shows the viewer how to use Timer/Counter 0 to generate the time delay between each LED. Some more programming techniques are introduced: - Running a process as a state machine, - The switch statement, and - Writing an interrupt service routine. The full video was going to be longer than an hour, so it was split into two parts, this is P...
Going Beyond Arduino # 5, Part 1: Blink using Timer 0
มุมมอง 8K8 ปีที่แล้ว
In continuing with the theme of blinking LEDs, this video shows the viewer how to use Timer/Counter 0 to generate the time delay between each LED. Some more programming techniques are introduced: - Running a process as a state machine, - The switch statement, and - Writing an interrupt service routine. The full video was going to be longer than an hour, so it was split into two parts, this is P...
Going Beyond Arduino # 4 - Blinking 6 LEDs
มุมมอง 6K8 ปีที่แล้ว
In keeping with the blinking LED theme of the previous video, this video shows how to blink several LEDs with minimal IO pins from the micocontroller. In terms of programming techniques, the logical shift, AND and OR operations are discussed. The methods of using masks and the AND and OR operations are demonstrated to manipulate certain bits in a control register without disturbing the other bi...
Going Beyond Arduino # 3 - Blink an LED
มุมมอง 10K8 ปีที่แล้ว
Going Beyond Arduino # 3 - Blink an LED
Going Beyond Arduino #2: Source Code File Management
มุมมอง 13K8 ปีที่แล้ว
Going Beyond Arduino #2: Source Code File Management
Going Beyond Arduino #1, Introduction
มุมมอง 32K8 ปีที่แล้ว
Going Beyond Arduino #1, Introduction
Hot Air Rework Station Repair
มุมมอง 77K8 ปีที่แล้ว
Hot Air Rework Station Repair
Ion Source Test Facility, Phase II
มุมมอง 6298 ปีที่แล้ว
Ion Source Test Facility, Phase II
Constant Current Source
มุมมอง 43K8 ปีที่แล้ว
Constant Current Source
Ion Source Test Facility
มุมมอง 1K8 ปีที่แล้ว
Ion Source Test Facility
Kludge - How to Modify a PCB
มุมมอง 3.3K9 ปีที่แล้ว
Kludge - How to Modify a PCB
A Look Inside a 30,000V Power Supply
มุมมอง 2.8K9 ปีที่แล้ว
A Look Inside a 30,000V Power Supply
BMP085 Pressure/Temperature Sensor
มุมมอง 8K9 ปีที่แล้ว
BMP085 Pressure/Temperature Sensor
I2C on an Arduino
มุมมอง 3.6K9 ปีที่แล้ว
I2C on an Arduino
Introduction to the I2C Bus
มุมมอง 23K9 ปีที่แล้ว
Introduction to the I2C Bus
Using a Hall Effect Sensor to Measure Current
มุมมอง 36K9 ปีที่แล้ว
Using a Hall Effect Sensor to Measure Current
Implementing a Frequency Counter Using a Microcontroller, Pt. 2
มุมมอง 3.6K9 ปีที่แล้ว
Implementing a Frequency Counter Using a Microcontroller, Pt. 2
Implementing a Frequency Counter Using a Microcontroller, Pt. 1
มุมมอง 2.3K9 ปีที่แล้ว
Implementing a Frequency Counter Using a Microcontroller, Pt. 1

ความคิดเห็น

  • @anatolsam6715
    @anatolsam6715 24 วันที่ผ่านมา

    I`m going to measure charge and discharge current of akumulator. Would you inform is it possible to use this sensor for bidirectional current measuring. Also the problem is to transfer this information to microcontroller ADC. I mean that I should transform +/- sygnal to unipolar and separately select a logical signal that will tell the controller about current polarity

  • @gc9n
    @gc9n หลายเดือนก่อน

    R2 and R3 value?

  • @davidanderson5203
    @davidanderson5203 หลายเดือนก่อน

    Excellent clear explanation, my Aoyue 968 blew its fuse resistor, and it's element. I replaced both, then new element burned like a furnace and failed. Turned out to be a shorted Triac, replaced and tested with an old mains lightbulb, before replacing the element. Bulb flashes slowly, 2 to 4 times/sec.?, I expected mains freq. Pulses.

  • @gammersunity4117
    @gammersunity4117 หลายเดือนก่อน

    Why does it out 1.1v for me, diode is 1n4007

  • @bigcreoman
    @bigcreoman หลายเดือนก่อน

    hello dear, i repaired handle wiring because of firing bta12-800, all good now in handle: resistance of heater, thermistor, hercon is working, cooler is working separately of station, but station says SLP always.... all transistors on board working, not fired component on vision, what wrong with it?

  • @marvtech-jq2du
    @marvtech-jq2du 3 หลายเดือนก่อน

    Please my rework station has an issues what should I do about it

    • @marvtech-jq2du
      @marvtech-jq2du 3 หลายเดือนก่อน

      I can ship it over if you can help me fix it

  • @t1d100
    @t1d100 4 หลายเดือนก่อน

    👍👍👍

  • @metalbender22
    @metalbender22 5 หลายเดือนก่อน

    I built this configuration with an unknown core. I found the core I used had significant magnetic hysteresis which skewed the resulting analog value say 5% in the direction last traveled. I set up a 49E on a breadboard hooked to a meter without a core and took a voltage reading. I then placed my sample core near the sensor to establish a reference output. I then exposed the sample core to a strong magnet then back to the sensor. If the core retained a magnetic charge I rejected it. Rather crude but it worked for me to find a core which gave me repeatable readings. I ended up with a 50T 26ga outputting 1 to 4V directly to a Arduino. No preamp was needed. Scale was +- 1A. Zero location was 512+-2 counts in all my current testing.

  • @Yorumcu63
    @Yorumcu63 5 หลายเดือนก่อน

    Great video

  • @jp040759
    @jp040759 7 หลายเดือนก่อน

    Very cool topic. THANX

  • @Alex-iw4cb
    @Alex-iw4cb 8 หลายเดือนก่อน

    Thank you for this video! This is what I needed. No shouting, jumping, flashing. Everything is strictly to the point. Thank you!

  • @mikesfarmmikesfarm3977
    @mikesfarmmikesfarm3977 8 หลายเดือนก่อน

    I am a long time arduino programmer and I do understand local and global vars and passing paramaters, but I do have a question about declaring local variables in void main loop that are only used to be passed to functions. 1.Do you agree that by default the void main loop is really a "while loop" that runs forever ? 2. assuming #1 is correct, then any variables declared in void main loop will keep getting redefined every cycle the void main loop runs and possibly resets the variable value a function may have changed ? 3. Do you just define void main loop variables as really globals above "setup" and treat them as local in the void main loop ? 4. Or do you create a additional "while" loop in main loop ?

    • @craighollinger9972
      @craighollinger9972 8 หลายเดือนก่อน

      I'm assuming you are talking about the Arduino setup() and loop() functions. As I'm sure you already know, all C/C++ programs need at least one function, main(). Arduino code is no different as it's just C++, but the main() function is hidden from the user. If you dig around the source files in the Arduino IDE folders, you'll find a source file which contains main(). main() will look something like this (although there may be more in it, I haven't explored it for some time): void main() { setup(); while(1) { loop(); } } As you can see, loop() is called repeatedly in the while(1) loop. Answers to your questions. #1 You are correct. #2 What happens to variables declared in loop() depends on how you declared them: void loop() { int var1; int var2 = 10; static int var3 = 20; /* other C++ statements... */ } var1 is only initialized to zero only once when your program starts. In loop() it only changes if some C++ statement changes it. var2 will be initialized to 10 every time loop() runs, which for most Arduino programs, happens continuously while your program runs. var3 is like a global variable, except it's only visible within loop(). I gets initialized to 20 only once when the program starts, and only changes if some C++ statement changes it. #3 No need to declare them as global unless they need to be accessed by other functions. #4 Creating another while(1) loop within loop() would be unnecessary and problematic. loop() would block at the new while(1) loop you created. This is a simplified explanation of what goes on with variables in functions (called automatic variables). There is a bit more under the hood that goes on, but I won't get into that. Hope these answered your questions. Craig.

  • @wayoutside1223
    @wayoutside1223 8 หลายเดือนก่อน

    I would love more videos online showcasing old analog transceivers and examples of them locating another beacon. I was taught on modern digital beacons and its interesting to see how the technology has evolved.

    • @craighollinger9972
      @craighollinger9972 8 หลายเดือนก่อน

      I don't have anymore old analog transceivers I'm willing to tear down. As for how to search with them, you might try internet searching for Ortovox F1 transceiver. It was the industry standard during the 1990s. There are still some out there today and they work well if you are trained properly on how to search with them.

  • @christianurgese
    @christianurgese 9 หลายเดือนก่อน

    What does happen decreasing source voltage ?

    • @craighollinger9972
      @craighollinger9972 8 หลายเดือนก่อน

      The circuit is quite simple, so not perfect. The current will change slightly as the source voltage changes (up or down), but it's pretty constant. That's the whole point of the circuit, constant current.

  • @thompsonolorede959
    @thompsonolorede959 9 หลายเดือนก่อน

    You really stripped it down for easy understanding and anyone can easily pick it up and use it in an application. Thank you for doing the video

  •  10 หลายเดือนก่อน

    This code to create a tachometer in Arduino is spot-on correct. Other like videos track # of revolutions in set amount of time, then extrapolate RPMs. The result is an RPM read that jumps in 60 increments, as every additional revolution in a given cycle results in +/- 60 revolutions. Mr. Hollinger's code is dated now, but still so relevant. Thank you!

  • @theeltea
    @theeltea ปีที่แล้ว

    A tutorial of epic proportions. Thanks a lot, Craig! It really made my day. Now I can PWM my way to victory.

  • @laxmansharma-ro6ri
    @laxmansharma-ro6ri ปีที่แล้ว

    rsisto fire

  • @flywittzbeats4008
    @flywittzbeats4008 ปีที่แล้ว

    you are so smart that explaining things simply just comes natural to you

  • @flywittzbeats4008
    @flywittzbeats4008 ปีที่แล้ว

    Thank you so much for this! Now I dont have to build both versions to see or hear what they're like. Excellent explanation

  • @SawShotShared
    @SawShotShared ปีที่แล้ว

    The live /hot/ wire is NOT blue in Europe

  • @havocking9224
    @havocking9224 ปีที่แล้ว

    What model of Hall sensor did you used in video?

    • @craighollinger9972
      @craighollinger9972 ปีที่แล้ว

      I believe it was a Honeywell SS49E.

    • @havocking9224
      @havocking9224 ปีที่แล้ว

      @@craighollinger9972 Thank you very much

  • @tonyfremont
    @tonyfremont ปีที่แล้ว

    Microchip makes some fairly decent opamps with rail to rail outputs. Some have a built in Vcc/2 reference output for biasing an input. Their weakness is that they are only 5V parts.

  • @M0NTVHomebrewing
    @M0NTVHomebrewing ปีที่แล้ว

    Thanks! Great explanation. Very helpful.

  • @cnate745
    @cnate745 ปีที่แล้ว

    Hi Craig, Thankyou for your video. I brought a 858D rework station that has lasted me 2years plus. Just today the hot air has decreased in blowing capacity so I decided to Google and have found your video. Upon opening the station I had found two resistors that have scolded marks on them. My question for you is even though your video is over 7 years old, do you still have the unit and how long has it last. Also it’s obvious that the more you spend the better the quality but if I were to pay an electrician to properly fix these issues would it be worth while or should I purchase a higher end station?

  • @CollinBaillie
    @CollinBaillie ปีที่แล้ว

    You never did initialize ledState. The 'default' case would be an excellent use for this. If ledState starts with random number greater than ledState6, default case sets it to ledState0.

    • @craighollinger9972
      @craighollinger9972 ปีที่แล้ว

      No need to explicitly initialize ledState, this is done in cstartup() before main() is called. It will be zero (ledState0) when the program starts. Good programming practice would dictate though, ledState be explicitly initialized to zero in the declaration (ie: uint8_t ledState = 0;).

    • @CollinBaillie
      @CollinBaillie ปีที่แล้ว

      @@craighollinger9972 Thanks for the reply. I didn't know about cstartup(). Why did you specifically initialize the var for LED_DELAY_COUNT? Habit?

    • @craighollinger9972
      @craighollinger9972 ปีที่แล้ว

      @@CollinBaillie ledDelay needed to be a specific value other than zero before the program started. I could have used a statement in main() to initialize it (eg: ledDelay = LED_BLINK_TIME;) but the way I did it is a shortcut. BTW: cstartup() will only initialize global variables (those declared outside of functions) or variables declared as static inside functions.

  • @benthere8051
    @benthere8051 ปีที่แล้ว

    Thanks, Craig. That's a very useful circuit. The two silicon diode voltage source is much better than a zener diode because the low voltage zeners are hard to source and only available in a limited number of voltages.

  • @wasiuadeleke6869
    @wasiuadeleke6869 ปีที่แล้ว

    Thank you for your explanations

  • @eberadan
    @eberadan ปีที่แล้ว

    Un tutorial así en español

  • @DavidTLutz
    @DavidTLutz ปีที่แล้ว

    Nothing 'anal' about fully commenting one's code, rather it is a matter of ettiqute - respectful behavior towards others. For UI (user interface) programmers, the customer is their user. But for the rest of us programmers, our fellow programmers are our users. As a career programmer, I always appreciated a coder that commented profusely. So I thank you for the comments in your GitHub code.

  • @DavidTLutz
    @DavidTLutz ปีที่แล้ว

    Yes, I am enjoying this - immensely. You know your stuff and communicate with depth and clarity. I thank you immensely for this series. Just what I needed. also tire of the Artduino IDE. In a previous video you indicated that you did not know what Atmel (now Microchip) Studio's solution file was for. Atmel Studio is based on Visual Studio. As a multi-decade user of Visual Studio, I can tell you that they are containers for multiple projects. The project you outlined under source management could be broken into three projects all in one solution. Blink solution could hold an EXE (executable) project named, e.g., blink_test and two DLL (static libraries)-one for the bottom layer in your diagram named peripherals and another for the middle layer named componernts. If you want to get industrious, you could add projects for a database and a web site. All held in one solution. Open the solution and all the projects get loaded. On to the next great video... EDIT: As I proceed through these videos it occurs to me that what I describe here makes no sense for this environment - there are no EXEs or DLLs, just ELF, HEX, etc. EXEs and DLLs make sense in the Windows world, but not here. So I am at a loss as to why there are solutions here in Microchip Studio as you are.

  • @Enigma758
    @Enigma758 ปีที่แล้ว

    Why not simply use a comparator? One input biased to 2.5v, other input to sensor output.

  • @scorpiuswireless1
    @scorpiuswireless1 ปีที่แล้ว

    Did you try using motor magnets to be trigger hall? It’s very obvious

    • @craighollinger9972
      @craighollinger9972 ปีที่แล้ว

      The magnets in the particular motor I used were stationary, they didn't spin.

  • @edward20049
    @edward20049 ปีที่แล้ว

    It's the same interior board design as yours with just two additional channels. I don't know the up and down buttons no longer do anything. Thanks for your help.

  • @edward20049
    @edward20049 ปีที่แล้ว

    Hi Craig, I have a WEP 2008D with 3 channels, but I cannot get the temperature to set above 200 degrees on any of the channels. Can you please tell what might be the problem?

    • @craighollinger9972
      @craighollinger9972 ปีที่แล้ว

      No idea. You have a different model from mine. The temperature setting in mine is done in the microcontroller, I suspect same in yours. Maybe there is some setting preventing yours going higher in temperature.

  • @uni-byte
    @uni-byte ปีที่แล้ว

    You could do a full 8-bits using just 3 pins with a 74HC595.

    • @craighollinger9972
      @craighollinger9972 ปีที่แล้ว

      Could do that, might make the frequency lower though.

    • @uni-byte
      @uni-byte ปีที่แล้ว

      @@craighollinger9972 Should be able to get pretty close to the full audio range I think. It's doesn't take too long to shift out 8 bits.

  • @vex123
    @vex123 ปีที่แล้ว

    Nice video. Can you help explain why you need a triangular/sawtooth signal compared against an actual sine wave to compute the duty cycle?

    • @craighollinger9972
      @craighollinger9972 ปีที่แล้ว

      The sawtooth waveform and the sine waveform were both produced in the same manner - varying the duty cycle of each pulse by changing how long the timer/counter had to reach the count. The difference between the two waveforms is the number the counter counts up to (the value in the output compare register). With the sawtooth, the number put into the output compare register started at 255 and counted down by one for each pulse, a simple linear change. The values that produced the sinewave came out of a table and the change between successive values changed in a sinusoidal manner. In the two videos linked below, I go into more detail on how to setup a timer/counter. th-cam.com/video/n0MNraPWQYo/w-d-xo.html th-cam.com/video/OvP1-zP1Y-k/w-d-xo.html I hope this answered your question.

  • @magmo1516
    @magmo1516 ปีที่แล้ว

    Thank you for this great video. I have the same problem. When turned on, it starts counting from 1 to 7 degrees Celsius. And the same error (S-E) occurs. I checked all the wires and found no fault. When examining the resistors, such as the video, I found a resistance of 330 ohms. When measured on the board, I find 51 ohms. When I remove it from the board and measure outside the board, I find 330 ohms. When measuring its location on the board, I find 51 ohms. How is that, and there is no resistance at all

    • @user-om9fu6iw5x
      @user-om9fu6iw5x 5 หลายเดือนก่อน

      Hi. I have the exact same problem. Did you ever find a fix for this?

    • @magmo1516
      @magmo1516 5 หลายเดือนก่อน

      @@user-om9fu6iw5x Unfortunately No

  • @HL65536
    @HL65536 ปีที่แล้ว

    That seems to be a lot more useful for high currents than low currents. For low currents, a shunt is usually a good choice, dropping 100mV max is usually not a big problem and 100mV can still be measured reasonably well. However, for higher currents, you need to either lower the voltage drop dramatically (range of 1mV or lower) and have difficulty measuring such low voltages accurately, or you have large amount of heat generated + energy wasted on the shunt. Making magnetic measurements is far easier, just lower the amount of turns (or even have just one turn) and select the sensor to fit the measurement range in a way that most of the GND-VCC swing is observed, being easily measured by standard 5v or 3.3V microcontrollers.

  • @leomihalic153
    @leomihalic153 ปีที่แล้ว

    How to send float variable trough UART?

    • @craighollinger9972
      @craighollinger9972 ปีที่แล้ว

      A float variable is just 4 bytes, so declare a variable that is a pointer to uint8_t: uint8_t * char_p;. Make that equal to the address of the float variable: char_p = &float_variable. Now you can use the pointer as an array and sent each byte out the UART: char_p[index]. The variable index is incremented from 0 to 3 to index each of the four bytes. If you want to send an ASCII representation (human readable) of the float variable, you'll have to use a function such as ftoa() and send the string it generates out the UART. As for how to actually do all this, I'll leave that up to you as a homework assignment.

  • @aa7jc
    @aa7jc ปีที่แล้ว

    First and foremost THANK YOU for all of what you are sharing! I am working through it all one lesson at a time and it takes several days to hammer everything into my head on each lesson. I really struggled on this lesson and could not get the code to compile.. I finally found the issue and corrected it.. The reason the code would not compile had to do with tc2.h not being a mirror copy of tc0.h. tc0.h used the structure name of "TIMER_COUNTER0_TYPE" where as tc2.h use the structure name of "Timer_Counter2". Once I got that corrected, I had to align the StructPWM.c file to use the correct names as well (it was using "Timer_Counter0" & "Timer_Counter2" rather than "TIMER_COUNTER0_TYPE" & "TIMER_COUNTER2_TYPE"). Thanks again for the content!

    • @craighollinger9972
      @craighollinger9972 ปีที่แล้ว

      Glad you are getting something out of the videos. Thanks for watching!

  • @aa7jc
    @aa7jc ปีที่แล้ว

    Excellent series! After watching this I studied it very slowly and inched through it over and over again making sure that I understood every little detail and then I decided to try and port it over to an ATMEGA32 that I had laying around and I learned a ton! Thanks for the content! I posted a 12 second clip of my successful ATMEGA32 experiment at th-cam.com/video/B08lzcjfIaA/w-d-xo.html

    • @craighollinger9972
      @craighollinger9972 ปีที่แล้ว

      Glad you got something out of my video. Good luck on your future endeavors in the ATMEGA world.

  • @SolveElectronics
    @SolveElectronics ปีที่แล้ว

    blue line in europe is neutral, and live is brown. green and yellow is earth

  • @아침이슬-m8x
    @아침이슬-m8x 2 ปีที่แล้ว

    Good! From Korea.......

  • @bob-ny6kn
    @bob-ny6kn 2 ปีที่แล้ว

    U-INT NOT UN-INT

  • @GabrieltTC
    @GabrieltTC 2 ปีที่แล้ว

    Could you help me with a similar station, it seems out of control, when I put the gun in its place to cool down, it does not turn off completely, it turns on by itself and the fan speed increases much more than normal, I have checked it but I cannot find the fault . I appreciate any help.

  • @ماياكلببنو
    @ماياكلببنو 2 ปีที่แล้ว

    Legend brother

  • @ludovanginderen6850
    @ludovanginderen6850 2 ปีที่แล้ว

    thanks

  • @ludovanginderen6850
    @ludovanginderen6850 2 ปีที่แล้ว

    thanks

  • @cooperradke3774
    @cooperradke3774 2 ปีที่แล้ว

    To reduce confusion it's an opto-isolator connecting to the triac.

    • @lindsay5985
      @lindsay5985 ปีที่แล้ว

      Also known as "optical coupler" as he said.

    • @Aft3rGl0
      @Aft3rGl0 ปีที่แล้ว

      @@lindsay5985 The optocoupler is used to transmit analog or digital information between circuits while maintaining electrical isolation at potentials up to 5,000 volts. An optoisolator is used to transmit analog or digital information between circuits where the potential difference is above 5,000 volts.