TLP521的三极管做功率驱动很不现实的。
首先,TLP521不是线性光耦,也就是说你给驱动端的5V电平,光耦另一端输出的电流不确定。

其次,TLP521的输出驱动电流很小,你这个电流太大,目前还没有听说用光耦做驱动器件的,并且三极管耐压也不够。

加一个MOS管是最好的选择,可以用一个P沟道的MOS管,比如IR4435,两块钱搞定,直接用光耦驱动它就可以了。
补充:你要是想用继电器的话也好办,用8050三极管来驱动继电器,你可以直接把三极管接在8255上,也可以把三极管接在光耦的输出上,8050很常用的。
在8050的基极上串连一个1K的电阻,接在8255或是光耦的输出端,记得加下拉电阻,10K够了,8050的集电极接继电器的控制端,射极接地,继电器的另一个控制端接驱动电压,然后用1N4148二极管(随便一个二极管就可以,只要不是稳压二极管,推荐4148)反向并联在继电器的两个控制端上,继电器另一端接灯泡,搞定了,这个电路我敢打包票,肯定没有问题。直接用光耦驱继电器太难为它了。
5v继电器 想在15v的电路中驱动工作,继电器线圈电阻70欧,我串联了个200欧的电阻 ,太烫了,
单片机引脚一般上电都是高电平,用NPN会使继电器跳动一下,所以最好用PNP了,或者用两个NPN把电平转换一下也可以。有些单片机如PIC,?STM32上电引脚都是浮空输入,对外围电路无影响也就无所谓误动作了
5V继电器,线圈电阻70Ω,经计算,该继电器的工作电流为71mA。这里介绍一个非常简单的降压方法。你可以使用两个稳压值为5.1V的稳压管1N4733串联起来降压,两个稳压管可以降压10V左右,这样即可用15V电源驱动5V继电器了。由于1N4733稳压管的功率可达1W,故发热很小,并且这种型号的稳压管体积也较小,跟常用的1N4007二极管的体积差不多。若是12V继电器用于15V电路中,你只要串联4个1N4007二极管即可。每个1N4007二极管的正向压降在0.75V左右。


