这是我编的交通灯程序:(萌新的程序,若编的不好请谅解)
程序简介:
1)东⻄向道路绿灯亮为5秒,绿灯结束后黄灯闪烁3秒,黄灯结束后红灯点亮。
2)南北向道路绿灯亮为5秒,绿灯结束后黄灯闪烁3秒,黄灯结束后红灯点亮。
3)东西向绿灯亮或黄灯闪烁时,南北向交通灯为红灯。
4)南北向绿灯亮或⻄灯闪烁时,东西向交通灯为红灯。
5)通过旋转电位器,实现主干道(东西向)绿灯通⾏时间在5~10秒之间变化。
程序代码:
- volatile int 主红;
- volatile int 主黄;
- volatile int 主绿;
- volatile int 支红;
- volatile int 支黄;
- volatile int 支绿;
- volatile int 电位器;
- void setup(){
- 主红 = 0;
- 主黄 = 1;
- 主绿 = 2;
- 支红 = 4;
- 支黄 = 5;
- 支绿 = 6;
- 电位器 = 0;
- }
- void loop(){
- while (true) {
- 电位器 = analogRead(A1);
- 电位器 = (map(电位器, 0, 1023, 0, 5000));
- pinMode(主红, OUTPUT);
- digitalWrite(主红,LOW);
- pinMode(主黄, OUTPUT);
- digitalWrite(主黄,LOW);
- pinMode(主绿, OUTPUT);
- digitalWrite(主绿,HIGH);
- pinMode(支红, OUTPUT);
- digitalWrite(支红,HIGH);
- pinMode(支黄, OUTPUT);
- digitalWrite(支黄,LOW);
- pinMode(支绿, OUTPUT);
- digitalWrite(支绿,LOW);
- delay(5000);
- delay(电位器);
- pinMode(主红, OUTPUT);
- digitalWrite(主红,LOW);
- pinMode(主绿, OUTPUT);
- digitalWrite(主绿,LOW);
- pinMode(支红, OUTPUT);
- digitalWrite(支红,HIGH);
- pinMode(支黄, OUTPUT);
- digitalWrite(支黄,LOW);
- pinMode(支绿, OUTPUT);
- digitalWrite(支绿,LOW);
- for (int i = 1; i <= 3; i = i + (1)) {
- pinMode(主黄, OUTPUT);
- digitalWrite(主黄,HIGH);
- delay(500);
- pinMode(主黄, OUTPUT);
- digitalWrite(主黄,LOW);
- delay(500);
- }
- pinMode(主红, OUTPUT);
- digitalWrite(主红,HIGH);
- pinMode(主黄, OUTPUT);
- digitalWrite(主黄,LOW);
- pinMode(主绿, OUTPUT);
- digitalWrite(主绿,LOW);
- pinMode(支红, OUTPUT);
- digitalWrite(支红,LOW);
- pinMode(支黄, OUTPUT);
- digitalWrite(支黄,LOW);
- pinMode(支绿, OUTPUT);
- digitalWrite(支绿,HIGH);
- delay(5000);
- pinMode(主红, OUTPUT);
- digitalWrite(主红,HIGH);
- pinMode(主黄, OUTPUT);
- digitalWrite(主黄,LOW);
- pinMode(主绿, OUTPUT);
- digitalWrite(主绿,LOW);
- pinMode(支红, OUTPUT);
- digitalWrite(支红,LOW);
- pinMode(支绿, OUTPUT);
- digitalWrite(支绿,LOW);
- for (int i = 1; i <= 3; i = i + (1)) {
- pinMode(支黄, OUTPUT);
- digitalWrite(支黄,HIGH);
- delay(500);
- pinMode(支黄, OUTPUT);
- digitalWrite(支黄,LOW);
- delay(500);
- }
- }
- }
复制代码
望各位大神看看有没有什么问题
|