Нужна помощь в написание скетча для stm8s103

Нужна помощь в написание скетча для контролера stm8s103, есть готовый рабочий скетч для arduino, нужно чтобы эти же задачи выполнял stm, суть следующая при отсутствие света servo удерживает определённый угол после подачи света поворачивается на заданный угол, выключаем свет возвращается в исходный угол, повторно подаем свет поворачивается в противоположный заданный угол после выключения возвращается в первоначальный угол.

const int pinServo=6; // Пин для подключения сервопривода
const int POT=5; //Аналоговый вход A3 фоторезистора
int valres = 0; // переменная для хранения значения фоторезистора
int angleServo = 45; // переменная для хранения угла поворота сервы
void setup()
{
// подключить переменную servo к выводу pinServo
servo1.attach(pinServo);
Serial.begin(9600);
}
void loop()
{
const int threshold = 70; //порог срабатывания датчика
static byte on_stat = 0; //счёчик статуса срабатываний

valres = analogRead(POT); //чтение данных фоторезистора
Serial.println(valres); // Печать на терминал значения с аналогового

if (valres > threshold && on_stat == 0) {
servo1.write(90);
on_stat = 1;
delay(1500); //пауза для ажидания поворота сервопривода;
}
if (valres <= threshold && on_stat == 1) {
servo1.write(125);
on_stat = 2;
delay(1500); //пауза для ажидания поворота сервопривода;
}

if (valres > threshold && on_stat == 2) {
servo1.write(90);
on_stat = 3;
delay(1500); //пауза для ажидания поворота сервопривода;
}
if (valres <= threshold && on_stat == 3) {
servo1.write(45);
on_stat = 4;
delay(1500); //пауза для ажидания поворота сервопривода;
}
if (valres > threshold && on_stat == 4) {
servo1.write(90);
on_stat = 0;
delay(1500); //пауза для ажидания поворота сервопривода;

}

ну начнем))

плата такая?

1 лайк

Да! Именно такая.

Продолжим.
Что не получается?

UPD: Наверное не компилируется? Потому что у меня не компилируется. Видимо представлен не весь код?

Да, верно отсутсвует библиотека servo и имя

#include <Servo.h>
Servo servo1;
const int pinServo=6; // Пин для подключения сервопривода
const int POT=5; //Аналоговый вход A3 фоторезистора
int valres = 0; // переменная для хранения значения фоторезистора
int angleServo = 45; // переменная для хранения угла поворота сервы
void setup()
{
// подключить переменную servo к выводу pinServo
servo1.attach(pinServo);
Serial.begin(9600);
}
void loop()
{
const int threshold = 70; //порог срабатывания датчика
static byte on_stat = 0; //счёчик статуса срабатываний

valres = analogRead(POT); //чтение данных фоторезистора
Serial.println(valres); // Печать на терминал значения с аналогового

if (valres > threshold && on_stat == 0) {
servo1.write(90);
on_stat = 1;
delay(1500); //пауза для ажидания поворота сервопривода;
}
if (valres <= threshold && on_stat == 1) {
servo1.write(125);
on_stat = 2;
delay(1500); //пауза для ажидания поворота сервопривода;
}

if (valres > threshold && on_stat == 2) {
servo1.write(90);
on_stat = 3;
delay(1500); //пауза для ажидания поворота сервопривода;
}
if (valres <= threshold && on_stat == 3) {
servo1.write(45);
on_stat = 4;
delay(1500); //пауза для ажидания поворота сервопривода;
}
if (valres > threshold && on_stat == 4) {
servo1.write(90);
on_stat = 0;
delay(1500); //пауза для ажидания поворота сервопривода;

}

поинтересуюсь, чем обусловлен выбор именно этой платы, а не к примеру attiny85 (дигиспарк)

Первая цена второе её размер.

цена и размеры соизмеримы и тинька 5 вольтовая однако

Мы приобрели для своих проэктов в большом количестве, цена была сладкая и выбор стал еще из-за размера. Она меньше даже pro mini.

Если уже компилируется, то, думаю, осталось аналоговый пин поменять и должно работать…

К сажелению нет . Менял пины согласно мануалу без результатно.

Не компилируется.

Так может быть ошибки покажешь? Или это засекреченная информация? :smiley:

Мне надо немного времени и я сделаю скрины.

Никаких скринов!!!
Только текстом.

Не понимаю… Человек закупил мильен чипов, ищет исполнителя за деньги. И тут же начинается командная бесплатная работа. Отчего ж вы ему в “бесплатной” теме не помогли?

2 лайка

Вот подправил согласно мануала на микросхему. Ругается на 25 строку.

Servo servo1;
const int potpin=11; //Аналоговый вход фоторезистора
int valres = 0; // переменная для хранения значения фоторезистора
int angleServo = 93; // переменная для хранения угла поворота сервы
void setup()
{ 
 // подключить переменную servo к выводу pinServo
servo1.attach(9);
Serial.begin(9600);
}
void loop()
{
  const int threshold = 70; //порог срабатывания датчика
  static byte on_stat = 0; //счёчик статуса срабатываний

  valres = analogRead(potpin); //чтение данных фоторезистора
  Serial.println(valres); // Печать на терминал значения с аналогового

  if (valres > threshold && on_stat == 0) {
    servo1.write(93);
    on_stat = 1;
    delay(1000); //пауза для ажидания поворота сервопривода;
  }
  if (valres <= threshold && on_stat == 1) {
    servo1.write(135);
    on_stat = 2;
    delay(1000); //пауза для ажидания поворота сервопривода;
  }
  if (valres > threshold && on_stat == 2) {
    servo1.write(93);
    on_stat = 3;
    delay(1000); //пауза для ажидания поворота сервопривода;
  }
  if (valres <= threshold && on_stat == 3) {
    servo1.write(43);
    on_stat = 4;
    delay(1000); //пауза для ажидания поворота сервопривода;
     }
  if (valres > threshold && on_stat == 4) {
    servo1.write(93);
    on_stat = 0;
    delay(1000); //пауза для ажидания поворота сервопривода;

     }
}

Это текст ошибки.
C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\BENDER\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\BENDER\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\BENDER\Documents\Arduino\libraries -fqbn=sduino:stm8:stm8sblue -ide-version=10819 -build-path C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230 -warnings=none -build-cache C:\Users\BENDER\AppData\Local\Temp\arduino_cache_134080 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.STM8Tools.path=C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05 -prefs=runtime.tools.STM8Tools-2019.02.05.path=C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05 -prefs=runtime.tools.sdcc.path=C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242 -prefs=runtime.tools.sdcc-build.11242.path=C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242 -verbose C:\Users\BENDER\Documents\Arduino\VOG\VOG.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\BENDER\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\BENDER\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\BENDER\Documents\Arduino\libraries -fqbn=sduino:stm8:stm8sblue -ide-version=10819 -build-path C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230 -warnings=none -build-cache C:\Users\BENDER\AppData\Local\Temp\arduino_cache_134080 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.STM8Tools.path=C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05 -prefs=runtime.tools.STM8Tools-2019.02.05.path=C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05 -prefs=runtime.tools.sdcc.path=C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242 -prefs=runtime.tools.sdcc-build.11242.path=C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242 -verbose C:\Users\BENDER\Documents\Arduino\VOG\VOG.ino
Using board ‘stm8sblue’ from platform in folder: C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0
Using core ‘sduino’ from platform in folder: C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0
Detecting libraries used…
“C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05/win/busybox” ash “C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05/wrapper/sdcc.sh” “C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/bin/sdcc” “C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230\sketch\VOG.ino.cpp” nul re12 -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -E -MC -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\cores\sduino” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\variants\standard” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0/STM8S_StdPeriph_Driver/inc” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/include”
Alternatives for Servo.h: [Servo@1.1.8 Servo@1.1.2]
ResolveLibrary(Servo.h)
→ candidates: [Servo@1.1.8 Servo@1.1.2]
“C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05/win/busybox” ash “C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05/wrapper/sdcc.sh” “C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/bin/sdcc” “C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230\sketch\VOG.ino.cpp” nul re12 -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -E -MC -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\cores\sduino” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\variants\standard” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\libraries\Servo\src” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0/STM8S_StdPeriph_Driver/inc” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/include”
“C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05/win/busybox” ash “C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05/wrapper/sdcc.sh” “C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/bin/sdcc” “C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\libraries\Servo\src\stm8\Servo.c” nul re12 -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -E -MC -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\cores\sduino” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\variants\standard” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\libraries\Servo\src” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0/STM8S_StdPeriph_Driver/inc” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/include”
Generating function prototypes…
“C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05/win/busybox” ash “C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05/wrapper/sdcc.sh” “C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/bin/sdcc” “C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230\sketch\VOG.ino.cpp” “C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230\preproc\ctags_target_for_gcc_minus_e.cpp” re12 -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -E -MC -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\cores\sduino” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\variants\standard” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\libraries\Servo\src” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0/STM8S_StdPeriph_Driver/inc” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/include”
C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/bin/sdcc C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230\sketch\VOG.ino.cpp C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230\preproc\ctags_target_for_gcc_minus_e.cpp re12 -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -E -MC -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\cores\sduino -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\variants\standard -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\libraries\Servo\src -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0/STM8S_StdPeriph_Driver/inc -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/include
Mark re12:C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/bin/sdcc -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -E -MC -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\cores\sduino -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\variants\standard -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\libraries\Servo\src -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0/STM8S_StdPeriph_Driver/inc -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/include C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230\sketch\VOG.ino.cpp -o C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230\preproc\ctags_target_for_gcc_minus_e.cpp
cpp gefunden
“C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino11/ctags” -u --language-force=c++ -f - --c+±kinds=svpf --fields=KSTtzns --line-directives “C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230\preproc\ctags_target_for_gcc_minus_e.cpp”
Компиляция скетча…
“C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05/win/busybox” ash “C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05/wrapper/sdcc.sh” “C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/bin/sdcc” “C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230\sketch\VOG.ino.cpp” “C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230\sketch\VOG.ino.cpp.o” re2 -MMD -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ --less-pedantic -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\cores\sduino” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\variants\standard” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\libraries\Servo\src” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0/STM8S_StdPeriph_Driver/inc” “-IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/include”
C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/bin/sdcc C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230\sketch\VOG.ino.cpp C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230\sketch\VOG.ino.cpp.o re2 -MMD -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ --less-pedantic -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\cores\sduino -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\variants\standard -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\libraries\Servo\src -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0/STM8S_StdPeriph_Driver/inc -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/include
Mark re2:C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/bin/sdcc -MMD -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ --less-pedantic -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\cores\sduino -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\variants\standard -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\libraries\Servo\src -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0/STM8S_StdPeriph_Driver/inc -IC:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.11242/include C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230\sketch\VOG.ino.cpp -o C:\Users\BENDER\AppData\Local\Temp\arduino_build_356230\sketch\VOG.ino.cpp.o
cpp gefunden
C:\Users\BENDER\Documents\Arduino\VOG\VOG.ino:9: error 25: Structure/Union expected left of ‘.->’
C:\Users\BENDER\Documents\Arduino\VOG\VOG.ino:10: error 25: Structure/Union expected left of ‘.->’
C:\Users\BENDER\Documents\Arduino\VOG\VOG.ino:18: error 25: Structure/Union expected left of ‘.->’
C:\Users\BENDER\Documents\Arduino\VOG\VOG.ino:21: error 25: Structure/Union expected left of ‘.->’
C:\Users\BENDER\Documents\Arduino\VOG\VOG.ino:26: error 25: Structure/Union expected left of ‘.->’
C:\Users\BENDER\Documents\Arduino\VOG\VOG.ino:31: error 25: Structure/Union expected left of ‘.->’
C:\Users\BENDER\Documents\Arduino\VOG\VOG.ino:36: error 25: Structure/Union expected left of ‘.->’
C:\Users\BENDER\Documents\Arduino\VOG\VOG.ino:41: error 25: Structure/Union expected left of ‘.->’
Несколько библиотек найдено для “Servo.h”
Используется: C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\libraries\Servo
Не используется: C:\Program Files (x86)\Arduino\libraries\Servo
Используем библиотеку Servo версии 1.1.2 из папки: C:\Users\BENDER\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0\libraries\Servo
exit status 1
Ошибка компиляции для платы STM8S103F3 Breakout Board.

Батюшки… А я и не обратил внимание, что раздел “Ищу исполнителя”.
Прошу прощения.

Вы хотя бы по-русски читать умеете?