Paste "1792036300" Text
  1. // ZADANIE 4 - Arduino Uno
  2. // Sterowanie jasnością dwóch diod LED za pomocą potencjometru
  3. // Przycisk zmienia, która dioda rozjaśnia się przy wzroście wartości potencjometru
  4.  
  5. const int POT_PIN = A0;
  6.  
  7. const int LED_CZERWONA = 9; // pin PWM
  8. const int LED_ZIELONA = 10; // pin PWM
  9.  
  10. const int PRZYCISK = 2; // przycisk do GND
  11.  
  12. bool tryb = 0;
  13. // tryb = 0 -> potencjometr zwiększa jasność czerwonej LED
  14. // tryb = 1 -> potencjometr zwiększa jasność zielonej LED
  15.  
  16. int poprzedniStanPrzycisku = HIGH;
  17.  
  18. // Jeżeli potencjometr działa odwrotnie, zmień false na true
  19. bool odwrocPotencjometr = false;
  20.  
  21. void setup() {
  22. pinMode(LED_CZERWONA, OUTPUT);
  23. pinMode(LED_ZIELONA, OUTPUT);
  24.  
  25. pinMode(PRZYCISK, INPUT_PULLUP);
  26.  
  27. Serial.begin(9600);
  28.  
  29. Serial.println("START PROGRAMU");
  30. Serial.println("Zadanie 4 - LED PWM + potencjometr + przycisk");
  31. }
  32.  
  33. void loop() {
  34. // ODCZYT PRZYCISKU
  35. int stanPrzycisku = digitalRead(PRZYCISK);
  36.  
  37. // Wykrycie zmiany z HIGH na LOW, czyli naciśnięcia przycisku
  38. if (poprzedniStanPrzycisku == HIGH && stanPrzycisku == LOW) {
  39. tryb = !tryb;
  40.  
  41. Serial.print("Zmieniono tryb na: ");
  42.  
  43. if (tryb == 0) {
  44. Serial.println("czerwona rosnie, zielona maleje");
  45. } else {
  46. Serial.println("zielona rosnie, czerwona maleje");
  47. }
  48.  
  49. delay(200); // prosta eliminacja drgan stykow
  50. }
  51.  
  52. poprzedniStanPrzycisku = stanPrzycisku;
  53.  
  54.  
  55. // ODCZYT POTENCJOMETRU
  56. int wartoscPot = analogRead(POT_PIN); // zakres 0-1023
  57.  
  58. int pwm = map(wartoscPot, 0, 1023, 0, 255);
  59.  
  60. if (odwrocPotencjometr == true) {
  61. pwm = 255 - pwm;
  62. }
  63.  
  64. int pwmCzerwona;
  65. int pwmZielona;
  66.  
  67. if (tryb == 0) {
  68. pwmCzerwona = pwm;
  69. pwmZielona = 255 - pwm;
  70. } else {
  71. pwmZielona = pwm;
  72. pwmCzerwona = 255 - pwm;
  73. }
  74.  
  75.  
  76. // WYSTEROWANIE DIOD
  77. analogWrite(LED_CZERWONA, pwmCzerwona);
  78. analogWrite(LED_ZIELONA, pwmZielona);
  79.  
  80.  
  81. // MONITOR PORTU SZEREGOWEGO
  82. Serial.print("Potencjometr: ");
  83. Serial.print(wartoscPot);
  84.  
  85. Serial.print(" | PWM czerwona: ");
  86. Serial.print(pwmCzerwona);
  87.  
  88. Serial.print(" | PWM zielona: ");
  89. Serial.print(pwmZielona);
  90.  
  91. Serial.print(" | Tryb: ");
  92.  
  93. if (tryb == 0) {
  94. Serial.println("czerwona rosnie");
  95. } else {
  96. Serial.println("zielona rosnie");
  97. }
  98.  
  99. delay(100);
  100. }
Submitted  and never expires   
 3KB  Characters:2346  Hits:28