fork download
  1. // У нас на плате pro mini ATmega 168 (5v, 16MHz), хотя это и неважно
  2. #include <SoftwareSerial.h> // Подключаем библиотеку
  3. #include <TimerOne.h>
  4. SoftwareSerial mySerial(10, 11); // RX, TX Назначаем пины на прием и передачу
  5.  
  6. byte pers; // Переменная для получения данных порта
  7. int x; // Переменная координат алгоритма Брезенхема
  8. int y; // Переменная координат алгоритма Брезенхема
  9. int onoff = 0; // Переменная сигнала на плату симистора
  10. unsigned int n; // Счетчик непришедших пакетов
  11. unsigned long halfWave; // Для отсчета длины полуволны
  12. int i = 1;
  13.  
  14. void setup() {
  15. pinMode(12, OUTPUT); // Назначаем пин на выход (плата симистора)
  16. pinMode(13, OUTPUT); // Назначаем пин на выход (светодиод-контролька)
  17. digitalWrite(12, 0); // выход на плату симистора (отключено)
  18. digitalWrite(13, 0); // Светодиод потушен
  19. //Serial.begin(9600);
  20. mySerial.begin(4800); // Запускаем работу порта
  21. Timer1.initialize(10000);
  22. Timer1.attachInterrupt(pulsar);
  23. }
  24.  
  25. void loop()
  26. {
  27.  
  28. }
  29.  
  30. void receiveData()
  31. {
  32.  
  33. if (mySerial.available())
  34. {
  35. pers = mySerial.read(); // Считываем данные с порта, если там что-то есть
  36. n = 0; // Раз данные пришли, обнулим счетчик
  37. }
  38. else
  39. {
  40. ++n; // Считаем, сколько раз не пришли данные
  41. }
  42.  
  43. if (pers > 100)
  44. {
  45. pers = 0; // на всякий случай, если значение нереальное
  46. }
  47.  
  48. if (n > 10) // Если 10 секунд данные не приходят, прекратим подачу импульсов.
  49. {
  50. pers = 0;
  51. }
  52. }
  53.  
  54. void pulsar()
  55. {
  56. x = i * pers / 100 ;
  57. if (x == y) // Если целая часть после деления осталась неизменной - импульса нет
  58. {
  59. onoff = 0;
  60. }
  61. else // Если целая часть увеличилась - импульс есть.
  62. {
  63. onoff = 1;
  64. }
  65. digitalWrite(12, onoff); // Включаем или выключаем плату симистора и светодиод.
  66. digitalWrite(13, onoff);
  67. y = x;
  68.  
  69. if (i >= 100)
  70. {
  71. i = 0;
  72. y = 0;
  73. receiveData(); // получаем данные
  74. }
  75. ++i;
  76. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:2:83: fatal error: SoftwareSerial.h: No such file or directory
 #include <SoftwareSerial.h>           // Подключаем библиотеку
                                                                                   ^
compilation terminated.
stdout
Standard output is empty