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
@gc9n2 ай бұрын
R2 and R3 value?
@davidanderson52032 ай бұрын
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.
@gammersunity41173 ай бұрын
Why does it out 1.1v for me, diode is 1n4007
@bigcreoman3 ай бұрын
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-jq2du4 ай бұрын
Please my rework station has an issues what should I do about it
@marvtech-jq2du4 ай бұрын
I can ship it over if you can help me fix it
@t1d1005 ай бұрын
👍👍👍
@metalbender226 ай бұрын
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.
@Yorumcu636 ай бұрын
Great video
@jp0407599 ай бұрын
Very cool topic. THANX
@Alex-iw4cb9 ай бұрын
Thank you for this video! This is what I needed. No shouting, jumping, flashing. Everything is strictly to the point. Thank you!
@mikesfarmmikesfarm39779 ай бұрын
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 ?
@craighollinger99729 ай бұрын
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.
@wayoutside12239 ай бұрын
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.
@craighollinger99729 ай бұрын
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.
@christianurgese10 ай бұрын
What does happen decreasing source voltage ?
@craighollinger99729 ай бұрын
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.
@thompsonolorede95910 ай бұрын
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
11 ай бұрын
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 Жыл бұрын
A tutorial of epic proportions. Thanks a lot, Craig! It really made my day. Now I can PWM my way to victory.
@laxmansharma-ro6ri Жыл бұрын
rsisto fire
@flywittzbeats4008 Жыл бұрын
you are so smart that explaining things simply just comes natural to you
@craighollinger9972 Жыл бұрын
Thanks!
@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
@craighollinger9972 Жыл бұрын
Thanks for watching!
@EdnoAverche Жыл бұрын
The live /hot/ wire is NOT blue in Europe
@havocking9224 Жыл бұрын
What model of Hall sensor did you used in video?
@craighollinger9972 Жыл бұрын
I believe it was a Honeywell SS49E.
@havocking9224 Жыл бұрын
@@craighollinger9972 Thank you very much
@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 Жыл бұрын
Thanks! Great explanation. Very helpful.
@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 Жыл бұрын
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 Жыл бұрын
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 Жыл бұрын
@@craighollinger9972 Thanks for the reply. I didn't know about cstartup(). Why did you specifically initialize the var for LED_DELAY_COUNT? Habit?
@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 Жыл бұрын
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 Жыл бұрын
Thank you for your explanations
@eberadan Жыл бұрын
Un tutorial así en español
@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 Жыл бұрын
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 Жыл бұрын
Why not simply use a comparator? One input biased to 2.5v, other input to sensor output.
@scorpiuswireless1 Жыл бұрын
Did you try using motor magnets to be trigger hall? It’s very obvious
@craighollinger9972 Жыл бұрын
The magnets in the particular motor I used were stationary, they didn't spin.
@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 Жыл бұрын
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 Жыл бұрын
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 Жыл бұрын
You could do a full 8-bits using just 3 pins with a 74HC595.
@craighollinger9972 Жыл бұрын
Could do that, might make the frequency lower though.
@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 Жыл бұрын
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 Жыл бұрын
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. kzbin.info/www/bejne/pGGwf6WXhbyEj9E kzbin.info/www/bejne/haezYmCwhZaMY80 I hope this answered your question.
@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-om9fu6iw5x6 ай бұрын
Hi. I have the exact same problem. Did you ever find a fix for this?
@magmo15166 ай бұрын
@@user-om9fu6iw5x Unfortunately No
@HL655362 жыл бұрын
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.
@leomihalic1532 жыл бұрын
How to send float variable trough UART?
@craighollinger99722 жыл бұрын
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.
@aa7jc2 жыл бұрын
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!
@craighollinger99722 жыл бұрын
Glad you are getting something out of the videos. Thanks for watching!
@aa7jc2 жыл бұрын
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 kzbin.info/www/bejne/eGGbna2Zn8t8l6M
@craighollinger99722 жыл бұрын
Glad you got something out of my video. Good luck on your future endeavors in the ATMEGA world.
@SolveElectronics2 жыл бұрын
blue line in europe is neutral, and live is brown. green and yellow is earth
@아침이슬-m8x2 жыл бұрын
Good! From Korea.......
@craighollinger99722 жыл бұрын
Thanks for watching!
@bob-ny6kn2 жыл бұрын
U-INT NOT UN-INT
@GabrieltTC2 жыл бұрын
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.