6


wiki.robisz.to <----
btn zmieniający diodę bez pamięci stanu btn:
bool isLedOn = false;
void setup() {
pinMode(8,INPUT);
pinMode(2,OUTPUT);
Serial.begin(9600);
Serial.println("Starting, state:");
Serial.println(isLedOn);
}
void switchState(int pinNo){
if(isLedOn == false){
digitalWrite(2,HIGH);
isLedOn = true;
Serial.println("Changing state:");
Serial.println(isLedOn);
}
else{
digitalWrite(2,LOW);
isLedOn = false;
Serial.println("Changing state:");
Serial.println(isLedOn);
}
}
void loop() {
if(digitalRead(8)){
switchState(2);
}
delay(500);}
blink fnc:
void blink(int pinNo, int times, int frequency){
for(int i=0;i<times;i++){
digitalWrite(pinNo,HIGH);
delay(frequency);
digitalWrite(pinNo,LOW);
delay(frequency);
}
}
btn zapalajacy/gaszacy diode z z pamięcią stanu btn:
bool isLedOn = false;
bool btnState = 0;
void setup() {
pinMode(8,INPUT);
pinMode(2,OUTPUT);
Serial.begin(9600);
Serial.println("Starting, state:");
Serial.println(isLedOn);
}
void switchState(int pinNo){
if(isLedOn == false){
digitalWrite(2,HIGH);
isLedOn = true;
Serial.println("Changing state:");
Serial.println(isLedOn);
}
else{
digitalWrite(2,LOW);
isLedOn = false;
Serial.println("Changing state:");
Serial.println(isLedOn);
}
}
void loop() {
if(digitalRead(8) == 1){
Serial.println("Button state:");
Serial.println(btnState);
if(btnState == 0){
switchState(2);
}
btnState = 1;
}
if(digitalRead(8) == 0){
btnState = 0;
}
delay(100);
}
The RX and TX LEDs on the board flashes when data is being transmitted via the USB-to-serial chip and USB connection to the computer. The RX and TX LEDs on the board does not flash for serial communication on pins 0 and 1. Receiver (Rx) and transmitter (Tx) data packets are similar in most protocols depending on which user-end (sender/receiver) is looked at. The framework around Rx and Tx data packets have different header tail, checksum etc. Bigger framework is needed for the Tx packets as they need to find the routing path through the network.
Btn generate number from 1-10 then msg on release
bool btnState = 0;
void setup() {
pinMode(8,INPUT);
Serial.begin(9600);
Serial.println("Starting, press button to get a number:");
}
int getNumber(){
return random(1,11);
}
void loop() {
if(digitalRead(8)==1){
if(btnState == 0){
Serial.println(getNumber());
}
btnState = 1;
}
if(digitalRead(8)==0){
if(btnState == 1){
Serial.println("Press button to get a number");
}
btnState = 0;
}
}
Zad do sygnalizacji swietlnej: przycisk, po 2 s zielone, po 3 s miga, czerwone az do przycisku
void setup()
{
pinMode(10, OUTPUT);//green
pinMode(9, OUTPUT);//ylow
pinMode(8, OUTPUT);//red
pinMode(2, INPUT);//btn
digitalWrite(8,HIGH);
}
void loop()
{
if(digitalRead(2)){
delay(2000);
digitalWrite(9,HIGH);
delay(200);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
delay(3000);
for(int i=0;i<6;i++){
digitalWrite(10,LOW);
delay(100);
digitalWrite(10,HIGH);
delay(100);
}
digitalWrite(10,LOW);
digitalWrite(9,HIGH);
delay(200);
digitalWrite(9,LOW);
digitalWrite(8,HIGH);
}
}

Co wyżej ale gorzej bo z pieszymi i funkcjami i zmienną która nie jest w sumie potrzebna, biała dioda sygnalizuje ze przycisk zostal wcisniety i czekamy
bool isRed = false;
void setup()
{
pinMode(4, OUTPUT);//red
pinMode(5, OUTPUT);//yellow
pinMode(6, OUTPUT);//green
pinMode(8, OUTPUT); //pedestrian green
pinMode(10, OUTPUT);//pedestrian red
pinMode(12, OUTPUT);//button pressed diode
pinMode(2, INPUT);//btn
pinMode(13, INPUT);//btn
digitalWrite(6, HIGH);
digitalWrite(8, HIGH);
Serial.begin(9600);
Serial.println("Starting...");
digitalWrite(12,HIGH);
delay(500);
digitalWrite(12,LOW);
}
void turnRed(){
Serial.println("Turning red:");
Serial.print("isRed: ");
Serial.println(isRed);
digitalWrite(6, LOW);
digitalWrite(5, HIGH);
delay(200);
digitalWrite(5, LOW);
digitalWrite(4, HIGH);
isRed = true;
}
void turnGreen(){
Serial.println("Turning Green:");
Serial.print("isRed: ");
Serial.println(isRed);
isRed = false;
digitalWrite(5, HIGH);
delay(200);
digitalWrite(4,LOW);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
}
void blink(int pinNo, int frequency, int times){
for(int i=0;i<times;i++){
digitalWrite(pinNo,HIGH);
delay(frequency);
digitalWrite(pinNo,LOW);
delay(frequency);
}
}
void letPedestrians(){
if(isRed){
digitalWrite(8, LOW);
digitalWrite(10, HIGH);
delay(1000);
blink(10,300,5);
digitalWrite(8, HIGH);
}
}
void loop()
{
if(digitalRead(2)){
Serial.println("Button pressed");
digitalWrite(12,HIGH);
if(!isRed){
delay(1000);
turnRed();
delay(100);
letPedestrians();
}
}
if(!digitalRead(2)){
digitalWrite(12,LOW);
if(isRed){
turnGreen();
}
}
}
