プログラムで学ぶ論理回路 パルス回路

ソフトウェアーで学ぶロジック 回路 パルス回路
今回は入力信号処理によく使われるパルス回路関係をまとめました。

  1. On Delay(オンディレー)
     On Delayは入力がONになって一定時間経過後に出力がONになる回路です。
     出力がONになる前に入力がOffになると出力はONになりません。
  2. Off Delay(オフディレー)
     Off Delayは入力と同時に出力がONし、入力がOFFになって一定時間経過後に出力がOFFになる回路です。
  3. One Shot(ワンショット・単安定マルチバイブレータ)
     One Shotは入力がONにになると一定時間出力がONになる回路です。
  4. Astable multivibrator(非安定マルチバイブレータ)
     Astable multivibratorは入力がONの間出力がON/OFFを繰り返す回路です。

Tinkercad Circuits による simulation
https://www.tinkercad.com/things/8EGjYTgYqL3

/*
Logic simulator
 
1. On Delay                SW1 - LED1
2. Off Delay               SW2 - LED2
3. One shot                SW3 - LED3
4. Astable multivibrator   SW4 - LED4
 
 created 2018
 NextStep LLC <https:next-step.asia/>
 by Kaz Ueno
 
 This example code is in the public domain.
 
*/
 
// set pin numbers:
const int SW1 = 4;     // the number of the pushbutton 1 pin
const int SW2 = 5;     // the number of the pushbutton 2 pin
const int SW3 = 6;     // the number of the pushbutton 3 pin
const int SW4 = 7;     // the number of the pushbutton 4 pin
 
const int LED1 =  8;   // the number of the LED 1 pin
const int LED2 =  9;   // the number of the LED 2 pin
const int LED3 =  10;  // the number of the LED 3 pin
const int LED4 =  11;  // the number of the LED 4 pin
 
void setup() {
  // initialize the LED pin as an output:
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(SW1, INPUT);
  pinMode(SW2, INPUT);
  pinMode(SW3, INPUT);
  pinMode(SW4, INPUT);
 
}
 
void loop() {
// Input Output Test 
/*  
  digitalWrite(LED1, !digitalRead(SW1));
  digitalWrite(LED2, !digitalRead(SW2));
  digitalWrite(LED3, !digitalRead(SW3));
  digitalWrite(LED4, !digitalRead(SW4));
*/
 
// On Delsy
  if(!digitalRead(SW1)){
    delay(1000);
    digitalWrite(LED1, 1);
    while(!digitalRead(SW1));
    digitalWrite(LED1, 0);
  }
 
// Off Delsy
  if(!digitalRead(SW2)){
    digitalWrite(LED2, 1);
    while(!digitalRead(SW2));
    delay(1000);
    digitalWrite(LED2, 0);
  }
 
// One shot
  if(!digitalRead(SW3)){
    digitalWrite(LED3, 1);
    delay(1000);
    digitalWrite(LED3, 0);
    while(!digitalRead(SW3));
  }
 
// Astable multivibrator
  while(!digitalRead(SW4)){
    digitalWrite(LED4, 1);
    delay(1000);
    digitalWrite(LED4, 0);
    delay(1000);
  }
}
  1. SW1 – LED1 On Delay
      SW1をONして1秒後にLED1がONになります。LED1が点灯する前にSW1をOFFにするとLD1は点灯しません、
  2. SW2 – LED2 Off Delay
      SW2をONしたらLED2がすぐにONとなり、SW2をOFFにしてして1秒後にLED2がOFFになります。
  3. SW3 – LED3 One Shot
      SW3をONしたら1秒間LED3がONになります、SW3をONのままにしてもLED3は1回だけしかONになりません。
      
  4. SW4 – LED4 Astable multivibrator
      SW4をONにしている間、LED4が1秒間隔で点滅します。

SoftLogicのTinkercad Circuitsページ


返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください