#1 Re: Апаратні питання » Розрахунок схеми з транзистором » 2020-05-20 13:34:13

MikeM пише:

Для начала в базу надо поставить резистор. Без этого всё остальное не имеет смысла

Я і не казав, що в цій схемі є сенс. Питання ж було в іншому.

#3 Апаратні питання » Розрахунок схеми з транзистором » 2020-05-19 09:45:44

Олександр К
відповідей: 5

Вивчаю зараз тему транзисторів і не до кінця розумію, які формули використовувати для їхнього розрахунку.
Ось, наприклад, я зібрав просту схему в симуляторі. Джерело живлення на 5В, резистор на 10 кОМ і транзистор з hFE = 100.
Я ніяк не можу зрозуміти звідки беруться цифри розраховані симулятором (Ic, Ib,Uce,Ube). Яким чином вони розраховуються? Я розумію, що практичного сенсу в такій схемі мабуть, що немає, але суть не в тому. Я хочу розуміти як розраховуються такі цифри?
Зарання вибачаюсь, якщо звернувся не по адресі.

DlQ2H2a.png

#4 Re: Апаратні питання » Помогите разобраться с конденсатором. » 2020-04-11 19:18:57

Честно говоря я разочарован.
Казалось бы форумы созданы для того, чтобы помогать людям. Здесь же вместо попробовать реально помочь чем-то или свысока отвечают или бросают какие-то толстые книги, типа RTFM.
Надеюсь это просто так карантин влияет на людей. Все злые и хотят, чтобы это уже наконец закончилось.
Ну ладно, это было лирическое отступление.
Пишу я не по поводу того, чтобы пожаловаться, а по поводу того, что все же нашел решение и хочу им поделиться. Вдруг кому-то тоже будет полезно.

Если коротко, то вместо считывать HIGH сигнал я решил воспользоваться INPUT_PULLUP и соответственно во время зарядки конденсатора считывать LOW. То есть если конденсатор присутствует, и нет разрывов цепи, то на входе получим LOW сигнал. В противном случае это будет сигнализировать о разрыве. После этой проверки нужно разрядить конденсатор. Это сделать нетрудно переведя оба пина в OUTPUT подав на них LOW, то есть запрем оба на землю тем самым дав конденсатору возможность разрядиться.

Привожу новую схему и скетч. В схему добавил DIP переключатель для симулирования разрыва цепи. Конденсатор может быть в пределах от 1нФ до 1 мкФ (по крайней мере я тестировал в этих пределах). Понимаю, что для использования в продуктиве нужно еще будет допилять напильником код, но в целом как прототип подходит. По крайней мере в симуляторе работает на 5+.

Psl1xVH.png

Скетч

const int PIN_S1 = 7;
const int PIN_S2 = 8;

void setup()
{
  Serial.begin(9600);
  pinMode(13, OUTPUT);
  pinMode(PIN_S1, OUTPUT);
  pinMode(PIN_S2, OUTPUT);
  dischargeCapacitor();
  Serial.println("Let's start!");
}

void loop()
{
  if (checkAlarm())
	Serial.println("ALARM!");
  dischargeCapacitor();
  //
  if (checkButton())
	digitalWrite(13, HIGH);
  else
	digitalWrite(13, LOW);
  //
  dischargeCapacitor();
  
  delay(500);
}


void dischargeCapacitor()
{
  pinMode(PIN_S2, INPUT);
  pinMode(PIN_S1, OUTPUT);
  //
  digitalWrite(PIN_S1, HIGH);
  delay(1);
  digitalWrite(PIN_S1, LOW);
  pinMode(PIN_S2, OUTPUT);
  digitalWrite(PIN_S2, LOW);
  delay(1);
}

bool checkAlarm()
{
  pinMode(PIN_S1, OUTPUT);
  digitalWrite(PIN_S1, LOW);
  delay(1);
  pinMode(PIN_S2, INPUT_PULLUP);
  int val = digitalRead(PIN_S2);
  if (val != LOW)
	  return true;
  return false;
}

bool checkButton()
{
  pinMode(PIN_S1, OUTPUT);
  digitalWrite(PIN_S1, LOW);
  delay(1);
  pinMode(PIN_S2, INPUT_PULLUP);
  int val = digitalRead(PIN_S2);
  if (val == LOW)
  {
	delay(300);
	val = digitalRead(PIN_S2);
	if (val == LOW)
		return true;
  }
  return false;
}

#5 Re: Апаратні питання » Помогите разобраться с конденсатором. » 2020-04-09 15:31:07

Я хорошо разбираюсь в программировании, а вот радиоэлектронику знаю поверхностно. Это хорошо, что вы знаете как сделать это по-другому. И я вам благодарен за это. Попробую разобраться.
Но меня больше интересует почему я получаю тот результат, который получаю. Исходя из моих знаний для меня он нелогичен. Был бы признателен если бы кто-нибудь объяснил почему происходит именно так. Может я неправильно понимаю как Ардуино определяет сигнал на входном пине? Я раньше думал, что входной пин это что-то типа делителя напряжения. Так я прочитал в каком-то блоге:

https://blog.stratifylabs.co/device/201 … ller-GPIO/

Но теперь я понимаю, что не все так просто. И хочу понимать принцип по которому работает микроконтроллер Ардуино. А именно определяет сигнал. Мне понадобится в будущем.

#6 Апаратні питання » Помогите разобраться с конденсатором. » 2020-04-09 13:38:39

Олександр К
відповідей: 10

Есть вот такая схемка.

3NXEOFQ.png

В целом идея такова: если зажать кнопку то происходит определенное действие. Конденсатор было добавлено с целью периодической проверки целостности проводов.
С моим дилетантским знанием радиоелетроники я думал, что, если подать напряжение на конденсатор, то сразу же после этого я на входном пине увижу это напряжение, и буквально через несколько миллисекунд это напряжение упадет до нуля (ведь сопротивление конденсатора станет бесконечно большим). Таким образом я думал, что если подать напряжение и сразу же его считать и через некоторое время оно пропадет, то это значит, что разрывов нет. Если же мы подали напряжение и через некоторое время оно все же не пропало, то это значит, что пользователь зажал кнопку и должно исполниться определенное действие.

Но, к сожалению почему-то получается, что если подать напряжение на конденсатор, то на входном пине будет считываться HIGH сигнал вплоть пока не подать LOW сигнал с выходного пина.

Скетч:

const int PIN_OUT = 7;
const int PIN_IN = 8;

void setup()
{
  Serial.begin(9600);
  pinMode(PIN_IN, INPUT);
  pinMode(PIN_OUT, OUTPUT);
  pinMode(13, OUTPUT);
}

void loop()
{
  char userCmd = Serial.read();
  if (userCmd == '+')
  {
    digitalWrite(PIN_OUT, HIGH);
  }
  else if (userCmd == '-')
  {
    digitalWrite(PIN_OUT, LOW);
  }

  int val = digitalRead(PIN_IN);
  digitalWrite(13, val);
  Serial.println(val);
  
  delay(700);
}

Підвал форуму