LED Light with CYT1000B

Lighting LED with AC main supply were not that easy. Mainly it required some sort of SMPS with current controlling circuitry. But it is changing. Now there are integrated circuits available specially designed to help to light LEDs with few extra components. One of such IC is CYT1000B.

I like CYT1000B more compared similar ICs in its category because it requires fewer components.

What I most dislike about CYT1000B is that it can only be used drive up to 60mA, thus cannot be used to light most of power LED chips. However, 3528 LEDs are rated 60mA so can be used.

Caution: The circuit I am discussing in this post is connected directly to main AC supply without any isolation. Never touch any of the component while it is in operation. Always make sure you are disconnected from main supply before touching the components or PCB.

Here is a schematic to build an LED light.

CYT1000B LED light schematic
CYT1000B LED light schematic

This circuit is to provide 60mA output current. Theoretically we can use as many as LEDs that its series voltage is within supply voltage. So, theoretically we can use up to 60 pieces 3528 LEDs in series with above circuit, but I don’t think that will work practically.

We need to provide enough copper padding for CYT1000B which is in TO252-2 package.

So listed components are:

  • CYT1000B
  • 304 (300nF) Polyethylene film capacitor rated 400V or above.
  • Bridge rectifier — Four diodes or 2W10 or DB207
  • 10uF / 400V electrolytic capacitor
  • 10nF ceramic capacitor
  • Resistor — In above schematic I used 10R which is to provide current of 60mA. Please read below to see how to calculate this resistor value.
  • One or more LEDs in series connected to OUT- and OUT+ terminals.

We can use AC supply up to 250V. The capacitor C1 is to limit current from main supply. Regarding C3, I was not sure about the type ceramic of capacitor to be used, but both multi-layer ceramic and high voltage ceramic capacitors worked for me. But I think high voltage ceramic capacitor would be more safe to use.

Controlling Output Current

The RS2 resistor is being used to control the output current and it needs to be calculated. As per CYT1000B datasheet, output current calculation formula is 600mV / Rs.

So, using 10R resistor, output current will be 60mA.
As per the datasheet, 60mA is the maximum allowed output current, thus 10R appears to be the minimum resistor value we can use in this application. Increasing resistance will decrease the output current.


ചൂട് അളക്കാനായി ഉപയോഗിക്കുന്ന ഒരു വഴിയാണ് തെർമോക്കപ്പ്ൾ. രണ്ട് വ്യത്യസ്ത ലോഹസങ്കരങ്ങൾ ചേർത്തുണ്ടാക്കുന്ന ലളിതമായ ഒരു ലോഹക്കഷ്ണമോ ദണ്ഡോ ആണിത്. ചൂടിന്റെ അളവനുസരിച്ച് ഇത് വളരെ ചെറിയ അളവിൽ വൈദ്യുതിയുണ്ടാക്കും. അതിന്റെ വോൾട്ടേജ് നില ചൂടിന്‌ ആനുപാതികമായിരിക്കും. ഇങ്ങനെയുണ്ടാകുന്ന വോൾട്ടേജ് നില അളന്ന് അതിൽ നിന്നും ചൂട് എത്രയാണ് എന്ന് കണക്കുകൂട്ടി കണ്ടെത്താൻ കഴിയും.
പക്ഷെ തെർമോക്കപ്പ്ലിന്റെ വോട്ടേജ് നില നേരിട്ട് അളക്കുന്നത് ശരിയായ രീതിയല്ല. കാരണം വളരെ ചെറിയ വോൾട്ടേജായിരിക്കും അത്. ഉദാഹരണം ഒരു K ടൈപ്പ് തെർമോക്കപ്പ്ൾ ഏതാണ് 600 ഡിഗ്രി ചൂടാക്കിയാൽ ഉണ്ടാവുന്നത് ഏതാണ്ട് 20 മില്ലി വോൾട്ട് ആണ്. മിക്ക മൈക്രോകണ്ട്രോളറുകൾക്കും ADC ഐസികൾക്കൂം ഈ കുറഞ്ഞ വോൾട്ടേജ് നില വേർത്തിരിച്ച് അറിയാൻ കഴിയില്ല. എന്നാൽ ഒരു ആമ്പ്ലിഫയർ സർക്യൂട്ട് ഉപയോഗിച്ചാൽ ഈ പ്രശ്നത്തെ മറികടക്കാം. തെർമോക്കപ്പ്ലിന്റെ വോൾട്ടേജ് നില 100 മടങ്ങ് അല്ലെങ്കിൽ അതിൽ കൂടുതലോ ആയി ഉയർത്തി മൈക്രോകണ്ട്രോളറിന് നൽകാം.

ഉദാഹരണത്തിന്, തെർമോക്കപ്പ്ൾ വോൾട്ടേജ് നില 20 മില്ലി വോൾട്ട് ആണെങ്കിൽ. അതിനെ 150 മടങ്ങാക്കിയാൽ 3V കിട്ടും, ഈ വോൾട്ടേജ് നില മൈക്രോകണ്ട്രോളറിന് അളന്നെടുക്കാം. അതിൽ നിന്നും തെർമോക്കപ്പ്ലിന്റെ വോൾട്ടേജ് നില മനസ്സിലാക്കി താപനില കണ്ടെത്താം.
ഇങ്ങനെ തെർമോക്കപ്പ്ലിന്റെ വോൾട്ടേജ് നില മൈക്രോകണ്ട്രോളറിന് അനുകൂലമായ നിലയിലേക്ക് ഉയർത്താൻ സാഹായിക്കുന്ന ഒരു ആമ്പ്ലിഫയർ സാർക്യൂട്ടിന്റെ വിശദാംശങ്ങൾ ഈ ലിങ്കിൽ കാണാം.
തെർമോക്കപ്പ്ലിന്റെ താപനില അളന്ന് അതിനനുസരിച്ച് കാര്യങ്ങൾ ചെയ്യാൻ മൈക്രോകണ്ട്രോളറിനെ പ്രോഗ്രാം ചെയ്യാം. അതുവഴി പലവിധത്തിലുള്ള ഉപകരണങ്ങൾ ഉണ്ടാക്കിയെടുക്കം.

വിവിധ ഉപകരണങ്ങളിലും യന്ത്രങ്ങളിലും നിർമ്മാണശാലകളിലും തെർമോക്കപ്പ്ൾ വ്യാപകമായി ഉപയോഗിക്കുന്നുണ്ട്.

Facebook Post: https://www.facebook.com/junaidpv/posts/10157069752569187

Nginx Configuration for WordPress with HTTPS Enabled

Few days back I switched back to WordPress from static site generator Hugo. On my server I am using Nginx as web-server though I am more familiar with Apache Web Server (Now I can’t remember exactly why I switched to Nginx?!). I am using LetsEncrypt SSL certificates and always redirect regular HTTP traffic to HTTPS.

Continue reading “Nginx Configuration for WordPress with HTTPS Enabled”

Thermocouple Amplifier with OP07C Op-Amp

Recently I created a soldering station based on Arduino Pro mini. It involves reading temperature data from thermocouple within soldering iron. Thermocouple produce a very little voltage, around up to 30 Milli volts for soldering irons. So, soldering station uses an op-amp based circuit to amplify those small signals from thermocouple to signal high enough for microcontroller’s ADC channel can detect. I noticed many DIY makers on Internet uses LM358 as the op-amp for those amplifier circuit, while researching on the topic. I learned LM358 is not a good choice for the purpose because it has relatively high off-set voltage, a voltage op-amp gives in output when input voltage is 0. Then I researched many many designs and finally settled to use OP07C op-amp IC.

Continue reading “Thermocouple Amplifier with OP07C Op-Amp”

PWM with STM8S

PWM is a great way to control brightness of LEDs, speed of motors, etc. Most microcontrollers including STM8S has built in ability to generate PWM signals. In this article I share simple code to generate PWM signal in STM8S microcontroller. However, I don’t write anything about PWM theory other than basic calculation to get required frequency and duty cycle.

Continue reading “PWM with STM8S”

Bootloader-less Programming Arduino Pro Mini

Recently I was creating a configurable timer circuit based Arduino Pro Mini. The circuit has a momentary push button which user can press to turn ON the device. The device will turn OFF itself once the time is elapsed. On starting, Arduino has to turn on a relay to get permanent connection to power source, so it will get power when user released the push button. One issue I faced was that Arduino takes around 3 seconds to start executing the program because of the presence of the bootloader. So, user would have to keep push button pressed for around 3 seconds to get the device started. I wanted to get rid of bootloader so Arduino will start executing the program soon we press the push button for a moment.

Continue reading “Bootloader-less Programming Arduino Pro Mini”

STM8S: Timer 2 with Overflow Interrupt

In previous post I showed how we can use Timer 2 as simple counter. In this post I am going to show how we can program to have interrupt when its value overflow. As simple experiment, we will toggle an LED in each second within the interrupt handler (also called ISR, Interrupt Service Routine).

Continue reading “STM8S: Timer 2 with Overflow Interrupt”

STM8S: Use Timer 2 as Simple Counter to Blink LED (without Interrupt)

Timers inside MCUs are very useful and essential peripherals for timing applications. In this article I will show Timer 2 in an STM8S (specifically STM8S103F3) can be used to blink an LED.

Continue reading “STM8S: Use Timer 2 as Simple Counter to Blink LED (without Interrupt)”

Program STM8S Development Board with ST-Link v2

I successfully programmed development board having STM8S103F3P6. It is quite simple to make it blink LED. For me, it was second easiest after Arduino Uno to get started. I used SDCC as the C compiler, ST-Link v2 clone as programmer, and stm8flash to flash the binary file through ST-Link.

Continue reading “Program STM8S Development Board with ST-Link v2”