Fixing the loop in my code

(deleted)

Please edit your post and remove the colours; grey on a slightly different grey is difficult to read.
Next put your code in code tags:
*) Before your code, type
** **[code]** **

*) After your code, type
** **[/code]** **

Out of curiosity, why did you post in "Website and Forum"?

@cody138

Your topic was Moved to it's current location / section as it is more suitable.

Could you take a few moments to Learn and Use The Forum

It will help you get the best out of the forum in the future.

  • Your OS and version can be valuable information, please include it along with extra security you are using. Antivirus etc.

  • Always list the version of the IDE you are using and the board version if applicable.

  • Use quote or add error messages as an attachment NOT a picture.

  • How to insert an image into your post. ( Thanks @sterretje )

  • Add your sketch where applicable but please use CODE TAGS ""

  • Add a SCHEMATIC were needed even if it is hand drawn

  • Add working links to any specific hardware as needed (NOT links to similar items)

  • Remember that the people trying to help cannot see your problem so give as much information as you can

COMMON ISSUES

  • Ensure you have FULLY inserted the USB cables.

  • Check you have a COMMON GROUND where required. ( Thanks @Perry)

  • Where possible use USB 2.0 ports or a USB 2.0 POWERED HUB to rule out USB 3.0 issues.

  • Try other computers where possible.

  • Try other USB leads where possible.

  • You may not have the correct driver installed. CH340/341 or CP2102 or FT232 VCP Drivers - FTDI

  • There may be a problem with the board check or remove your wiring first.

  • Remove any items connected to pins 0 and 1.

COMPUTER RELATED

  • Close any other serial programs before opening the IDE.

  • Ensure you turn off any additional security / antivirus just to test.

  • There may be a problem with the PC try RESTARTING it.

  • You may be selecting the wrong COM port.

  • Avoid cloud/network based installations where possible OR ensure your Network/Cloud software is RUNNING.

  • Clear your browsers CACHE.

  • Close the IDE before using any other serial programs.

  • Preferably install IDE’s as ADMINISTRATOR or your OS equivalent

ARDUINO SPECIFIC BOARDS

  • CH340/341 based clones do not report useful information to the “get board info” button.

  • NANO (Old Types) some require you to use the OLD BOOTLOADER option.

  • NANO (ALL Types) See the specific sections lower in the forum.

  • NANO (NEW Types) Install your board CORE’s.

  • Unless using EXTERNAL PROGRAMMERS please leave the IDE selection at default “AVRISP mkII”.

  • Boards using a MICRO usb connector need a cable that is both DATA and CHARGE. Many are CHARGE ONLY.

CREATE editor install locations.

  • On macOs ~/Applications/ArduinoCreateAgent-1.1/ArduinoCreateAgent.app/Contents/MacOS/config.ini

  • On Linux ~/ArduinoCreateAgent-1.1/config.ini

  • On Windows C:\Users[your user]\AppData\Roaming\ArduinoCreateAgent-1.1

Performing the above actions may help resolve your problem without further help.

Language problem ?

Try a language closer to your native language:

Thanks to all those who helped and added to this list.

Hi,

Check if it works for you. I have edited your code a bit.

#include <Servo.h>
Servo servo; 
#define sensor 7 
int angle = 0; 
int detection = HIGH; 
unsigned long int trig_time =0;


void setup() 
  {
   servo.attach(8); 
   servo.write(angle); 
   } 

    void loop() 
    {
       detection = digitalRead(sensor); 
       
       if (detection == LOW  && trig_time ==0) 
       {  trig_time = millis();
          servo.write(90); 
       }
      if ((millis()-trig_time)>=2000) 
      {
         trig_time=0;
        servo.write(0); 
      }
    }

don't you need to detect when the sensor becomes active and perform the action just once.

consider

#include <Servo.h>

Servo servo;
#define sensor 7
int angle = 0;
int detection = HIGH;

void setup()
{
    servo.attach(8);
    servo.write(angle);
}

int detectLst = HIGH;

void loop()
{
    detection = digitalRead(sensor);

    if (detection != detectLst)  {
        detectLst = detection;

        if (detection == LOW) {
            servo.write(90);
            delay (2000);
            servo.write(0);
        }
    }
}

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.