void setup() {
chipName("74LS32"); // Quad 2-input OR gate
logicFamily(TTL);
pin(1, "1A");
pin(2, "1B");
pin(3, "1Y", OUTPUT);
pin(4, "2A");
pin(5, "2B");
pin(6, "2Y", OUTPUT);
pin(7, "GND", GROUND);
pin(8, "3Y", OUTPUT);
pin(9, "3A");
pin(10, "3B");
pin(11, "4Y", OUTPUT);
pin(12, "4A");
pin(13, "4B");
pin(14, "VCC", POWER);
int w = chipWidth();
int h = chipHeight();
int middle_w = w / 2;
int middle_h = h / 2;
// Draw the curved part of the OR gate symbol
drawArc(middle_w - 15, middle_h, 10, 0, 90 * (PI / 180));
drawArc(middle_w - 15, middle_h, 10, 270 * (PI / 180), 360 * (PI / 180));
// Draw the straight part of the OR gate symbol
drawLine(middle_w - 15, middle_h + 10, middle_w, middle_h + 10);
drawLine(middle_w - 15, middle_h - 10, middle_w, middle_h - 10);
// Draw the second curved part of the OR gate symbol
drawArc(middle_w, middle_h, 10, 0, 90 * (PI / 180));
drawArc(middle_w, middle_h, 10, 270 * (PI / 180), 360 * (PI / 180));
// Draw input lines
drawLine(middle_w - 20, middle_h - 5, middle_w - 7, middle_h - 5);
drawLine(middle_w - 20, middle_h + 5, middle_w - 7, middle_h + 5);
// Draw output line
drawLine(middle_w + 10, middle_h, middle_w + 20, middle_h);
}
void loop() {
//Compute the output of the first OR gate
// OR operation for inputs 1A and 1B
bool one = digitalRead(1) || digitalRead(2);
// Write the output to the first OR gate
digitalWrite(3, one);
// Repeat the logic for all the OR gates
bool two = digitalRead(4) || digitalRead(5);
digitalWrite(6, two);
bool three = digitalRead(9) || digitalRead(10);
digitalWrite(8, three);
bool four = digitalRead(12) || digitalRead(13);
digitalWrite(11, four);
}