Editor Version ×
Standard

1.Easy to use and quick to get started

2.The process supports design scales of 300 devices or 1000 pads

3.Supports simple circuit simulation

4.For students, teachers, creators

Profession

1.Brand new interactions and interfaces

2.Smooth support for design sizes of over 5,000 devices or 10,000 pads

3.More rigorous design constraints, more standardized processes

4.For enterprises, more professional users

Ongoing

STD 8_march

License: Public Domain

Mode: Editors' pick

  • 368
  • 0
  • 0
Update time: 2022-03-14 07:01:43
Creation time: 2022-03-01 13:40:51
Description

Мигалка к 8 марта на atmega328 и светодиодах с nano

 

/*

   1 клик - следующий режим

   2 клика - автомсена (по умолчанию включено)

   светодиоды по номеру

      1

    0 2

      3

   9 4

  8 5

   7 6

*/

const int ledCount = 10;

int ledPins [] = {6, 5, 4, 3, 10, 11, 12, 9, 8, 7};

byte thisMode;

#define mode_mount 10

#define BTN 2

#define AUTOPLAY_TIME 3 // автоплей в секундах

#include "GyverButton.h"

GButton touch(BTN, HIGH_PULL, NORM_OPEN);

#include "GyverTimer.h"

//GTimer_ms effectTimer(500);

GTimer_ms autoplayTimer((long)AUTOPLAY_TIME * 1000);

boolean autoplay = true;

void setup() {

  Serial.begin (9600);

  touch.setTimeout(300);

  for (int thisLed = 0; thisLed < ledCount; thisLed++) {

    pinMode (ledPins[thisLed], OUTPUT);

  }

}

void loop() {

  touch.tick();

  switch (thisMode) {// переключение режимов

    case 0: allOn();

      break;

    case 1: allOff();

      break;

    case 2: halfL();

      break;

    case 3: halfR();

      break;

    case 4: pixel();

      break;

    case 5: bar();

      break;

    case 6: pixelBig();

      break;

    case 7: strokeOnlyHorTop ();

      break;

    case 8: blinkLR();

      break;

    case 9: strokeFilHorTop();

      break;

  }

  if (touch.hasClicks()) {// обработка кликов

    byte clicks = touch.getClicks();

    switch (clicks) {

      case 1:

        {

          if (thisMode == 3) {

            thisMode = 0;

          }

          else {

            nextMode();

          }

        }

        break;

      case 2: autoplay = !autoplay; break;

    }

  }

  if (autoplayTimer.isReady() && autoplay) { // таймер смены режима

    nextMode();

  }

}

void nextMode() {

  thisMode++;

  if (thisMode >= mode_mount) thisMode = 0;

}

 

 

void blinkLR() {

  halfR ();

  delay (200);

  halfL ();

  delay (200);

}

void halfL() {

  for (int thisLed = 2; thisLed <= 6; thisLed++) {

    digitalWrite (ledPins[thisLed], LOW);

  }

  digitalWrite (ledPins[0], HIGH);

  digitalWrite (ledPins[1], HIGH);

  digitalWrite (ledPins[3], HIGH);

  digitalWrite (ledPins[9], HIGH);

  digitalWrite (ledPins[8], HIGH);

  digitalWrite (ledPins[7], HIGH);

}

void halfR() {

  for (int thisLed = 1; thisLed <= 6; thisLed++) {

    digitalWrite (ledPins[thisLed], HIGH);

  }

  digitalWrite (ledPins[0], LOW);

  digitalWrite (ledPins[3], LOW);

  digitalWrite (ledPins[9], LOW);

  digitalWrite (ledPins[8], LOW);

  digitalWrite (ledPins[7], LOW);

}

void pixel() {

  allOff ();

  for (int thisLed = 0; thisLed < ledCount; thisLed++) {

    digitalWrite (ledPins[thisLed], HIGH);

    delay (200);

    digitalWrite (ledPins[thisLed], LOW);

  }

  digitalWrite (ledPins[3], HIGH);

  delay (200);

  digitalWrite (ledPins[3], LOW);

}

void bar() {

  allOff ();

  for (int thisLed = 0; thisLed < ledCount; thisLed++) {

    digitalWrite (ledPins[thisLed], HIGH);

    delay (100);

  }

  for (int thisLed = 0; thisLed < ledCount; thisLed++) {

    digitalWrite (ledPins[thisLed], LOW);

  }

  delay (400);

}

void pixelBig() {

  for (int q = 0; q <= ledCount; q++) {

    digitalWrite (ledPins[q], HIGH);

    delay (100);

    digitalWrite (ledPins[q + 1], HIGH);

    digitalWrite (ledPins[q - 1], LOW);

  }

  digitalWrite (ledPins[3], HIGH);

  delay (100);

  digitalWrite (ledPins[3], LOW);

}

void strokeOnlyHorTop() {

  allOff ();

  digitalWrite (ledPins[6], HIGH);

  digitalWrite (ledPins[7], HIGH);

  delay (200);

  digitalWrite (ledPins[6], LOW);

  digitalWrite (ledPins[7], LOW);

  digitalWrite (ledPins[5], HIGH);

  digitalWrite (ledPins[8], HIGH);

  delay (200);

  digitalWrite (ledPins[5], LOW);

  digitalWrite (ledPins[8], LOW);

  digitalWrite (ledPins[4], HIGH);

  digitalWrite (ledPins[9], HIGH);

  delay (200);

  digitalWrite (ledPins[4], LOW);

  digitalWrite (ledPins[9], LOW);

  digitalWrite (ledPins[3], HIGH);

  delay (200);

  digitalWrite (ledPins[3], LOW);

  digitalWrite (ledPins[2], HIGH);

  digitalWrite (ledPins[0], HIGH);

  delay (200);

  digitalWrite (ledPins[2], LOW);

  digitalWrite (ledPins[0], LOW);

  digitalWrite (ledPins[1], HIGH);

  delay (200);

  digitalWrite (ledPins[1], LOW);

}

void strokeFilHorTop() {

  allOff ();

  delay (200);

  digitalWrite (ledPins[6], HIGH);

  digitalWrite (ledPins[7], HIGH);

  delay (200);

  digitalWrite (ledPins[5], HIGH);

  digitalWrite (ledPins[8], HIGH);

  delay (200);

  digitalWrite (ledPins[4], HIGH);

  digitalWrite (ledPins[9], HIGH);

  delay (200);

  digitalWrite (ledPins[3], HIGH);

  delay (200);

  digitalWrite (ledPins[2], HIGH);

  digitalWrite (ledPins[0], HIGH);

  delay (200);

  digitalWrite (ledPins[1], HIGH);

  delay (200);

}

void allOn() {

  for (int thisLed = 0; thisLed < ledCount; thisLed++) {

    digitalWrite (ledPins[thisLed], HIGH);

  }

}

void allOff() {

  for (int thisLed = 0; thisLed < ledCount; thisLed++) {

    digitalWrite (ledPins[thisLed], LOW);

  }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Design Drawing
schematic diagram
1 /
PCB
1 /
The preview image was not generated, please save it again in the editor.
ID Name Designator Footprint Quantity
1 programming H1 HDR-F-2.54_1X3 1
2 K2-3.6×6.1_SMD KEY1 KEY-SMD_2P-L6.2-W3.6-LS8.0 1
3 LED-0603_R LED1,LED2,LED3,LED4,LED5,LED6,LED7,LED8,LED9,LED10 LED0603_RED 10
4 1k R1,R2,R3,R4,R5,R6,R7,R8,R9,R10 R0805 10
5 10k R11 R0805 1
6 ATMEGA328-AU U1 TQFP-32_L7.0-W7.0-P0.80-LS9.0-BL 1
7 micro 5P_C77238 USB1 MICRO-USB_MICRO-USB-17 1
8 Керамический резонатор SMD Y1 X3-SMD-3.6X1.3X0.8MM 1

Unfold

Project Attachments
Order File name Download times
1

Без имени-1.jpg

0
Project Members
Target complaint
Related Projects
Change a batch
Loading...
Add to album ×

Loading...

reminder ×

Do you need to add this project to the album?

服务时间

周一至周五 9:00~18:00
  • 0755 - 2382 4495
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 立创EDA微信号

    easyeda

  • QQ交流群

    664186054

  • 立创EDA公众号

    lceda-cn