AFON//Радиотехник
C++Builder · проект 19/50

Астабильный NE555

Частота и скважность по R1, R2, C.

Задача

Рассчитать частоту, период и скважность автогенератора на NE555.

Компоненты на форме

Edit (EditR1, EditR2, EditC), Button (ButtonCalc), Memo (MemoOut).

Как работает

  1. Ввести два резистора и конденсатор.
  2. Посчитать f = 1,44/((R1+2·R2)·C).
  3. Добавить период и скважность.

Исходный код модуля

//---------------------------------------------------------------------------
// Проект 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.