arduino PWM с контролем ошибки
- Войдите на сайт для отправки комментариев
Чт, 23/06/2016 - 10:17
Здравствуйте! Написал скетч ШИМ все работает, но хотелось бы организовать вход отвечающий за ошибку.
прописал кнопку и задержку включения после сработки, все работает отключается на 10сек.
подскажите как сделать фиксацию что бы схема не включалась. еще одну кнопку которая будет приводить схему в работу
int Potenciometr = 0;
int DcMotor = 9;
const int but = 2;
int buttonState = 0;
void setup() {
// put your setup code here, to run once:
pinMode(but, INPUT);
pinMode(Potenciometr,INPUT);
pinMode(DcMotor,OUTPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
buttonState = digitalRead(but);
if (buttonState == HIGH) {
digitalWrite(DcMotor, LOW);
}
int Xmotor = map(analogRead(Potenciometr),0,1023,0,255);
analogWrite(DcMotor,Xmotor);
if (buttonState == HIGH) {
digitalWrite(DcMotor,0);
delay(10000);
}
}
прописал butER какое условие прописать могов не хватает
int Potenciometr = 0; int DcMotor = 9; const int but = 2; const int butER =3; int buttonState = 0; int buttonStateER = 0; void setup() { // put your setup code here, to run once: pinMode(but, INPUT); pinMode(butER, INPUT); pinMode(Potenciometr,INPUT); pinMode(DcMotor,OUTPUT); Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: buttonState = digitalRead(but); buttonStateER = digitalRead(butER); int Xmotor = map(analogRead(Potenciometr),0,1023,0,255); analogWrite(DcMotor,Xmotor); if (buttonState == HIGH) { digitalWrite(DcMotor,0); delay(10000); } }От делая надо избавляться. Например так:
int Potenciometr = 0; int DcMotor = 9; const int but = 2; const int butER =3; int buttonState = 0; int buttonStateER = 0; void setup() { // put your setup code here, to run once: pinMode(but, INPUT); pinMode(butER, INPUT); pinMode(Potenciometr,INPUT); pinMode(DcMotor,OUTPUT); Serial.begin(9600); } void loop() { // put your main code here, to run repeatedly: //buttonState = digitalRead(but); buttonStateER = digitalRead(butER); int Xmotor = map(analogRead(Potenciometr),0,1023,0,255); analogWrite(DcMotor,Xmotor); if (buttonStateER == HIGH) { digitalWrite(DcMotor,0); } while (buttonStateER == HIGH) { buttonState = digitalRead(but); if (buttonState == HIGH) { buttonStateER = LOW; } } }Разве что антидребезг все-же не помешает.
чет шим неправильно работать стал( мигалка какая то с регулировкой яркости
переписал вроде просто руками и все заработало
Обе кнопки подключены? Кнопка останова на 3 пине, кнопка запуска на 2 пине.
Все спасибо переписал, и все пошло, огромное спасибо)))
int Potenciometr = 0; int DcMotor = 9; const int but = 2; const int butER =3; int buttonState = 0; int buttonStateER = 0; void setup() { // put your setup code here, to run once: pinMode(but, INPUT); pinMode(butER, INPUT); pinMode(Potenciometr,INPUT); pinMode(DcMotor,OUTPUT); } void loop() { // put your main code here, to run repeatedly: buttonState = digitalRead(but); int Xmotor = map(analogRead(Potenciometr),0,1023,0,255); analogWrite(DcMotor,Xmotor); if (buttonState == HIGH) { digitalWrite(DcMotor,0); delay(1000); } while (buttonState == HIGH) { buttonStateER = digitalRead(butER); if (buttonStateER == HIGH) { buttonState = LOW; } } }Здравствуйте! Подскажите можно ли реализовать управление несколькими шим от одного аналогово входа, так чтобы сигналы между шим отличались сдвигом 120гр
Мысль такая...
управлять 3мя ключами со сдвигом, так чтобы 1 ключ был загружен к примеру на 30% при полной мощности нагрузки, соеденены колекторы транзисторов и подключена нагрузка
нарисовал картинку загрузить не могу((
https://new.vk.com/photo58527301_421234547
Аппаратно навряд ли такое можно сделать, программно только. Иначе говоря нарисовать свой ШИМ.
Похоже на PPM, используется в проп. радиоуправлении.