Задача
Рассчитать частоту, период и скважность автогенератора на NE555.
Компоненты на форме
Edit (EditR1, EditR2, EditC), Button (ButtonCalc), Memo (MemoOut).
Как работает
- Ввести два резистора и конденсатор.
- Посчитать f = 1,44/((R1+2·R2)·C).
- Добавить период и скважность.
Исходный код модуля
//---------------------------------------------------------------------------
// Проект 19. Астабильный NE555
// Частота и скважность по R1, R2, C.
//---------------------------------------------------------------------------
#include <vcl.h>
#include <math.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
//---------------------------------------------------------------------------
// Классическая схема автогенератора на NE555:
// f = 1.44 / ((R1 + 2·R2)·C), скважность = (R1+R2)/(R1+2·R2).
double ne555freq(double R1, double R2, double C)
{
double d=(R1+2*R2)*C;
return d<=0?0:1.44/d;
}
double ne555duty(double R1, double R2)
{
double d=R1+2*R2;
return d<=0?0:(R1+R2)/d*100.0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ButtonCalcClick(TObject *Sender)
{
double R1,R2,Cnf;
try { R1=StrToFloat(EditR1->Text); R2=StrToFloat(EditR2->Text); Cnf=StrToFloat(EditC->Text); }
catch (...) { MemoOut->Text="Проверьте числа"; return; }
double C=Cnf*1e-9;
double f=ne555freq(R1,R2,C);
if (f<=0){ MemoOut->Text="Номиналы должны быть больше нуля"; return; }
MemoOut->Lines->Clear();
MemoOut->Lines->Add("Частота: " + FormatFloat("0.###", f) + " Гц");
MemoOut->Lines->Add("Период: " + FormatFloat("0.######", 1.0/f) + " с");
MemoOut->Lines->Add("Скважность:" + FormatFloat("0.#", ne555duty(R1,R2)) + " %");
}
//---------------------------------------------------------------------------
Пояснения
- Скважность симметричного меандра недостижима без диода — она всегда > 50%.
- Ёмкость переводится из нФ в фарады.
📦 help-user.ru — срочный ремонт компьютеров и восстановление данных в Москве: help-user.ru.
Что дальше
Создайте в C++Builder новый проект, разместите перечисленные компоненты и вставьте код модуля. Остальные 49 программ — в разделе проектов на C++Builder; смотрите также обзор среды и контроллеры AVR.