remy 2 жил өмнө
parent
commit
668da544c9

+ 321 - 321
3D/BoxMere/ATX_PSU_Bracket/LICENSE.txt

@@ -1,322 +1,322 @@
-ATX PSU Bracket (https://www.thingiverse.com/thing:2363629) by T_Hambush is licensed under the Creative Commons - Attribution license.
-http://creativecommons.org/licenses/by/3.0/
-
-Creative Commons Legal Code
-
-Attribution 3.0 Unported
-
-    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
-    LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
-    ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
-    INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
-    REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR
-    DAMAGES RESULTING FROM ITS USE.
-
-License
-
-THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
-COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
-COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
-AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
-
-BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
-TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY
-BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS
-CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
-CONDITIONS.
-
-1. Definitions
-
- a. "Adaptation" means a work based upon the Work, or upon the Work and
-    other pre-existing works, such as a translation, adaptation,
-    derivative work, arrangement of music or other alterations of a
-    literary or artistic work, or phonogram or performance and includes
-    cinematographic adaptations or any other form in which the Work may be
-    recast, transformed, or adapted including in any form recognizably
-    derived from the original, except that a work that constitutes a
-    Collection will not be considered an Adaptation for the purpose of
-    this License. For the avoidance of doubt, where the Work is a musical
-    work, performance or phonogram, the synchronization of the Work in
-    timed-relation with a moving image ("synching") will be considered an
-    Adaptation for the purpose of this License.
- b. "Collection" means a collection of literary or artistic works, such as
-    encyclopedias and anthologies, or performances, phonograms or
-    broadcasts, or other works or subject matter other than works listed
-    in Section 1(f) below, which, by reason of the selection and
-    arrangement of their contents, constitute intellectual creations, in
-    which the Work is included in its entirety in unmodified form along
-    with one or more other contributions, each constituting separate and
-    independent works in themselves, which together are assembled into a
-    collective whole. A work that constitutes a Collection will not be
-    considered an Adaptation (as defined above) for the purposes of this
-    License.
- c. "Distribute" means to make available to the public the original and
-    copies of the Work or Adaptation, as appropriate, through sale or
-    other transfer of ownership.
- d. "Licensor" means the individual, individuals, entity or entities that
-    offer(s) the Work under the terms of this License.
- e. "Original Author" means, in the case of a literary or artistic work,
-    the individual, individuals, entity or entities who created the Work
-    or if no individual or entity can be identified, the publisher; and in
-    addition (i) in the case of a performance the actors, singers,
-    musicians, dancers, and other persons who act, sing, deliver, declaim,
-    play in, interpret or otherwise perform literary or artistic works or
-    expressions of folklore; (ii) in the case of a phonogram the producer
-    being the person or legal entity who first fixes the sounds of a
-    performance or other sounds; and, (iii) in the case of broadcasts, the
-    organization that transmits the broadcast.
- f. "Work" means the literary and/or artistic work offered under the terms
-    of this License including without limitation any production in the
-    literary, scientific and artistic domain, whatever may be the mode or
-    form of its expression including digital form, such as a book,
-    pamphlet and other writing; a lecture, address, sermon or other work
-    of the same nature; a dramatic or dramatico-musical work; a
-    choreographic work or entertainment in dumb show; a musical
-    composition with or without words; a cinematographic work to which are
-    assimilated works expressed by a process analogous to cinematography;
-    a work of drawing, painting, architecture, sculpture, engraving or
-    lithography; a photographic work to which are assimilated works
-    expressed by a process analogous to photography; a work of applied
-    art; an illustration, map, plan, sketch or three-dimensional work
-    relative to geography, topography, architecture or science; a
-    performance; a broadcast; a phonogram; a compilation of data to the
-    extent it is protected as a copyrightable work; or a work performed by
-    a variety or circus performer to the extent it is not otherwise
-    considered a literary or artistic work.
- g. "You" means an individual or entity exercising rights under this
-    License who has not previously violated the terms of this License with
-    respect to the Work, or who has received express permission from the
-    Licensor to exercise rights under this License despite a previous
-    violation.
- h. "Publicly Perform" means to perform public recitations of the Work and
-    to communicate to the public those public recitations, by any means or
-    process, including by wire or wireless means or public digital
-    performances; to make available to the public Works in such a way that
-    members of the public may access these Works from a place and at a
-    place individually chosen by them; to perform the Work to the public
-    by any means or process and the communication to the public of the
-    performances of the Work, including by public digital performance; to
-    broadcast and rebroadcast the Work by any means including signs,
-    sounds or images.
- i. "Reproduce" means to make copies of the Work by any means including
-    without limitation by sound or visual recordings and the right of
-    fixation and reproducing fixations of the Work, including storage of a
-    protected performance or phonogram in digital form or other electronic
-    medium.
-
-2. Fair Dealing Rights. Nothing in this License is intended to reduce,
-limit, or restrict any uses free from copyright or rights arising from
-limitations or exceptions that are provided for in connection with the
-copyright protection under copyright law or other applicable laws.
-
-3. License Grant. Subject to the terms and conditions of this License,
-Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
-perpetual (for the duration of the applicable copyright) license to
-exercise the rights in the Work as stated below:
-
- a. to Reproduce the Work, to incorporate the Work into one or more
-    Collections, and to Reproduce the Work as incorporated in the
-    Collections;
- b. to create and Reproduce Adaptations provided that any such Adaptation,
-    including any translation in any medium, takes reasonable steps to
-    clearly label, demarcate or otherwise identify that changes were made
-    to the original Work. For example, a translation could be marked "The
-    original work was translated from English to Spanish," or a
-    modification could indicate "The original work has been modified.";
- c. to Distribute and Publicly Perform the Work including as incorporated
-    in Collections; and,
- d. to Distribute and Publicly Perform Adaptations.
- e. For the avoidance of doubt:
-
-     i. Non-waivable Compulsory License Schemes. In those jurisdictions in
-        which the right to collect royalties through any statutory or
-        compulsory licensing scheme cannot be waived, the Licensor
-        reserves the exclusive right to collect such royalties for any
-        exercise by You of the rights granted under this License;
-    ii. Waivable Compulsory License Schemes. In those jurisdictions in
-        which the right to collect royalties through any statutory or
-        compulsory licensing scheme can be waived, the Licensor waives the
-        exclusive right to collect such royalties for any exercise by You
-        of the rights granted under this License; and,
-   iii. Voluntary License Schemes. The Licensor waives the right to
-        collect royalties, whether individually or, in the event that the
-        Licensor is a member of a collecting society that administers
-        voluntary licensing schemes, via that society, from any exercise
-        by You of the rights granted under this License.
-
-The above rights may be exercised in all media and formats whether now
-known or hereafter devised. The above rights include the right to make
-such modifications as are technically necessary to exercise the rights in
-other media and formats. Subject to Section 8(f), all rights not expressly
-granted by Licensor are hereby reserved.
-
-4. Restrictions. The license granted in Section 3 above is expressly made
-subject to and limited by the following restrictions:
-
- a. You may Distribute or Publicly Perform the Work only under the terms
-    of this License. You must include a copy of, or the Uniform Resource
-    Identifier (URI) for, this License with every copy of the Work You
-    Distribute or Publicly Perform. You may not offer or impose any terms
-    on the Work that restrict the terms of this License or the ability of
-    the recipient of the Work to exercise the rights granted to that
-    recipient under the terms of the License. You may not sublicense the
-    Work. You must keep intact all notices that refer to this License and
-    to the disclaimer of warranties with every copy of the Work You
-    Distribute or Publicly Perform. When You Distribute or Publicly
-    Perform the Work, You may not impose any effective technological
-    measures on the Work that restrict the ability of a recipient of the
-    Work from You to exercise the rights granted to that recipient under
-    the terms of the License. This Section 4(a) applies to the Work as
-    incorporated in a Collection, but this does not require the Collection
-    apart from the Work itself to be made subject to the terms of this
-    License. If You create a Collection, upon notice from any Licensor You
-    must, to the extent practicable, remove from the Collection any credit
-    as required by Section 4(b), as requested. If You create an
-    Adaptation, upon notice from any Licensor You must, to the extent
-    practicable, remove from the Adaptation any credit as required by
-    Section 4(b), as requested.
- b. If You Distribute, or Publicly Perform the Work or any Adaptations or
-    Collections, You must, unless a request has been made pursuant to
-    Section 4(a), keep intact all copyright notices for the Work and
-    provide, reasonable to the medium or means You are utilizing: (i) the
-    name of the Original Author (or pseudonym, if applicable) if supplied,
-    and/or if the Original Author and/or Licensor designate another party
-    or parties (e.g., a sponsor institute, publishing entity, journal) for
-    attribution ("Attribution Parties") in Licensor's copyright notice,
-    terms of service or by other reasonable means, the name of such party
-    or parties; (ii) the title of the Work if supplied; (iii) to the
-    extent reasonably practicable, the URI, if any, that Licensor
-    specifies to be associated with the Work, unless such URI does not
-    refer to the copyright notice or licensing information for the Work;
-    and (iv) , consistent with Section 3(b), in the case of an Adaptation,
-    a credit identifying the use of the Work in the Adaptation (e.g.,
-    "French translation of the Work by Original Author," or "Screenplay
-    based on original Work by Original Author"). The credit required by
-    this Section 4 (b) may be implemented in any reasonable manner;
-    provided, however, that in the case of a Adaptation or Collection, at
-    a minimum such credit will appear, if a credit for all contributing
-    authors of the Adaptation or Collection appears, then as part of these
-    credits and in a manner at least as prominent as the credits for the
-    other contributing authors. For the avoidance of doubt, You may only
-    use the credit required by this Section for the purpose of attribution
-    in the manner set out above and, by exercising Your rights under this
-    License, You may not implicitly or explicitly assert or imply any
-    connection with, sponsorship or endorsement by the Original Author,
-    Licensor and/or Attribution Parties, as appropriate, of You or Your
-    use of the Work, without the separate, express prior written
-    permission of the Original Author, Licensor and/or Attribution
-    Parties.
- c. Except as otherwise agreed in writing by the Licensor or as may be
-    otherwise permitted by applicable law, if You Reproduce, Distribute or
-    Publicly Perform the Work either by itself or as part of any
-    Adaptations or Collections, You must not distort, mutilate, modify or
-    take other derogatory action in relation to the Work which would be
-    prejudicial to the Original Author's honor or reputation. Licensor
-    agrees that in those jurisdictions (e.g. Japan), in which any exercise
-    of the right granted in Section 3(b) of this License (the right to
-    make Adaptations) would be deemed to be a distortion, mutilation,
-    modification or other derogatory action prejudicial to the Original
-    Author's honor and reputation, the Licensor will waive or not assert,
-    as appropriate, this Section, to the fullest extent permitted by the
-    applicable national law, to enable You to reasonably exercise Your
-    right under Section 3(b) of this License (right to make Adaptations)
-    but not otherwise.
-
-5. Representations, Warranties and Disclaimer
-
-UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
-OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
-KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
-INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
-FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
-LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
-WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
-OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
-
-6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
-LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
-ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
-ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
-BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-7. Termination
-
- a. This License and the rights granted hereunder will terminate
-    automatically upon any breach by You of the terms of this License.
-    Individuals or entities who have received Adaptations or Collections
-    from You under this License, however, will not have their licenses
-    terminated provided such individuals or entities remain in full
-    compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
-    survive any termination of this License.
- b. Subject to the above terms and conditions, the license granted here is
-    perpetual (for the duration of the applicable copyright in the Work).
-    Notwithstanding the above, Licensor reserves the right to release the
-    Work under different license terms or to stop distributing the Work at
-    any time; provided, however that any such election will not serve to
-    withdraw this License (or any other license that has been, or is
-    required to be, granted under the terms of this License), and this
-    License will continue in full force and effect unless terminated as
-    stated above.
-
-8. Miscellaneous
-
- a. Each time You Distribute or Publicly Perform the Work or a Collection,
-    the Licensor offers to the recipient a license to the Work on the same
-    terms and conditions as the license granted to You under this License.
- b. Each time You Distribute or Publicly Perform an Adaptation, Licensor
-    offers to the recipient a license to the original Work on the same
-    terms and conditions as the license granted to You under this License.
- c. If any provision of this License is invalid or unenforceable under
-    applicable law, it shall not affect the validity or enforceability of
-    the remainder of the terms of this License, and without further action
-    by the parties to this agreement, such provision shall be reformed to
-    the minimum extent necessary to make such provision valid and
-    enforceable.
- d. No term or provision of this License shall be deemed waived and no
-    breach consented to unless such waiver or consent shall be in writing
-    and signed by the party to be charged with such waiver or consent.
- e. This License constitutes the entire agreement between the parties with
-    respect to the Work licensed here. There are no understandings,
-    agreements or representations with respect to the Work not specified
-    here. Licensor shall not be bound by any additional provisions that
-    may appear in any communication from You. This License may not be
-    modified without the mutual written agreement of the Licensor and You.
- f. The rights granted under, and the subject matter referenced, in this
-    License were drafted utilizing the terminology of the Berne Convention
-    for the Protection of Literary and Artistic Works (as amended on
-    September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
-    Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996
-    and the Universal Copyright Convention (as revised on July 24, 1971).
-    These rights and subject matter take effect in the relevant
-    jurisdiction in which the License terms are sought to be enforced
-    according to the corresponding provisions of the implementation of
-    those treaty provisions in the applicable national law. If the
-    standard suite of rights granted under applicable copyright law
-    includes additional rights not granted under this License, such
-    additional rights are deemed to be included in the License; this
-    License is not intended to restrict the license of any rights under
-    applicable law.
-
-
-Creative Commons Notice
-
-    Creative Commons is not a party to this License, and makes no warranty
-    whatsoever in connection with the Work. Creative Commons will not be
-    liable to You or any party on any legal theory for any damages
-    whatsoever, including without limitation any general, special,
-    incidental or consequential damages arising in connection to this
-    license. Notwithstanding the foregoing two (2) sentences, if Creative
-    Commons has expressly identified itself as the Licensor hereunder, it
-    shall have all rights and obligations of Licensor.
-
-    Except for the limited purpose of indicating to the public that the
-    Work is licensed under the CCPL, Creative Commons does not authorize
-    the use by either party of the trademark "Creative Commons" or any
-    related trademark or logo of Creative Commons without the prior
-    written consent of Creative Commons. Any permitted use will be in
-    compliance with Creative Commons' then-current trademark usage
-    guidelines, as may be published on its website or otherwise made
-    available upon request from time to time. For the avoidance of doubt,
-    this trademark restriction does not form part of this License.
-
+ATX PSU Bracket (https://www.thingiverse.com/thing:2363629) by T_Hambush is licensed under the Creative Commons - Attribution license.
+http://creativecommons.org/licenses/by/3.0/
+
+Creative Commons Legal Code
+
+Attribution 3.0 Unported
+
+    CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
+    LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
+    ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
+    INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
+    REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR
+    DAMAGES RESULTING FROM ITS USE.
+
+License
+
+THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
+COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
+COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
+AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
+
+BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
+TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY
+BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS
+CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
+CONDITIONS.
+
+1. Definitions
+
+ a. "Adaptation" means a work based upon the Work, or upon the Work and
+    other pre-existing works, such as a translation, adaptation,
+    derivative work, arrangement of music or other alterations of a
+    literary or artistic work, or phonogram or performance and includes
+    cinematographic adaptations or any other form in which the Work may be
+    recast, transformed, or adapted including in any form recognizably
+    derived from the original, except that a work that constitutes a
+    Collection will not be considered an Adaptation for the purpose of
+    this License. For the avoidance of doubt, where the Work is a musical
+    work, performance or phonogram, the synchronization of the Work in
+    timed-relation with a moving image ("synching") will be considered an
+    Adaptation for the purpose of this License.
+ b. "Collection" means a collection of literary or artistic works, such as
+    encyclopedias and anthologies, or performances, phonograms or
+    broadcasts, or other works or subject matter other than works listed
+    in Section 1(f) below, which, by reason of the selection and
+    arrangement of their contents, constitute intellectual creations, in
+    which the Work is included in its entirety in unmodified form along
+    with one or more other contributions, each constituting separate and
+    independent works in themselves, which together are assembled into a
+    collective whole. A work that constitutes a Collection will not be
+    considered an Adaptation (as defined above) for the purposes of this
+    License.
+ c. "Distribute" means to make available to the public the original and
+    copies of the Work or Adaptation, as appropriate, through sale or
+    other transfer of ownership.
+ d. "Licensor" means the individual, individuals, entity or entities that
+    offer(s) the Work under the terms of this License.
+ e. "Original Author" means, in the case of a literary or artistic work,
+    the individual, individuals, entity or entities who created the Work
+    or if no individual or entity can be identified, the publisher; and in
+    addition (i) in the case of a performance the actors, singers,
+    musicians, dancers, and other persons who act, sing, deliver, declaim,
+    play in, interpret or otherwise perform literary or artistic works or
+    expressions of folklore; (ii) in the case of a phonogram the producer
+    being the person or legal entity who first fixes the sounds of a
+    performance or other sounds; and, (iii) in the case of broadcasts, the
+    organization that transmits the broadcast.
+ f. "Work" means the literary and/or artistic work offered under the terms
+    of this License including without limitation any production in the
+    literary, scientific and artistic domain, whatever may be the mode or
+    form of its expression including digital form, such as a book,
+    pamphlet and other writing; a lecture, address, sermon or other work
+    of the same nature; a dramatic or dramatico-musical work; a
+    choreographic work or entertainment in dumb show; a musical
+    composition with or without words; a cinematographic work to which are
+    assimilated works expressed by a process analogous to cinematography;
+    a work of drawing, painting, architecture, sculpture, engraving or
+    lithography; a photographic work to which are assimilated works
+    expressed by a process analogous to photography; a work of applied
+    art; an illustration, map, plan, sketch or three-dimensional work
+    relative to geography, topography, architecture or science; a
+    performance; a broadcast; a phonogram; a compilation of data to the
+    extent it is protected as a copyrightable work; or a work performed by
+    a variety or circus performer to the extent it is not otherwise
+    considered a literary or artistic work.
+ g. "You" means an individual or entity exercising rights under this
+    License who has not previously violated the terms of this License with
+    respect to the Work, or who has received express permission from the
+    Licensor to exercise rights under this License despite a previous
+    violation.
+ h. "Publicly Perform" means to perform public recitations of the Work and
+    to communicate to the public those public recitations, by any means or
+    process, including by wire or wireless means or public digital
+    performances; to make available to the public Works in such a way that
+    members of the public may access these Works from a place and at a
+    place individually chosen by them; to perform the Work to the public
+    by any means or process and the communication to the public of the
+    performances of the Work, including by public digital performance; to
+    broadcast and rebroadcast the Work by any means including signs,
+    sounds or images.
+ i. "Reproduce" means to make copies of the Work by any means including
+    without limitation by sound or visual recordings and the right of
+    fixation and reproducing fixations of the Work, including storage of a
+    protected performance or phonogram in digital form or other electronic
+    medium.
+
+2. Fair Dealing Rights. Nothing in this License is intended to reduce,
+limit, or restrict any uses free from copyright or rights arising from
+limitations or exceptions that are provided for in connection with the
+copyright protection under copyright law or other applicable laws.
+
+3. License Grant. Subject to the terms and conditions of this License,
+Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
+perpetual (for the duration of the applicable copyright) license to
+exercise the rights in the Work as stated below:
+
+ a. to Reproduce the Work, to incorporate the Work into one or more
+    Collections, and to Reproduce the Work as incorporated in the
+    Collections;
+ b. to create and Reproduce Adaptations provided that any such Adaptation,
+    including any translation in any medium, takes reasonable steps to
+    clearly label, demarcate or otherwise identify that changes were made
+    to the original Work. For example, a translation could be marked "The
+    original work was translated from English to Spanish," or a
+    modification could indicate "The original work has been modified.";
+ c. to Distribute and Publicly Perform the Work including as incorporated
+    in Collections; and,
+ d. to Distribute and Publicly Perform Adaptations.
+ e. For the avoidance of doubt:
+
+     i. Non-waivable Compulsory License Schemes. In those jurisdictions in
+        which the right to collect royalties through any statutory or
+        compulsory licensing scheme cannot be waived, the Licensor
+        reserves the exclusive right to collect such royalties for any
+        exercise by You of the rights granted under this License;
+    ii. Waivable Compulsory License Schemes. In those jurisdictions in
+        which the right to collect royalties through any statutory or
+        compulsory licensing scheme can be waived, the Licensor waives the
+        exclusive right to collect such royalties for any exercise by You
+        of the rights granted under this License; and,
+   iii. Voluntary License Schemes. The Licensor waives the right to
+        collect royalties, whether individually or, in the event that the
+        Licensor is a member of a collecting society that administers
+        voluntary licensing schemes, via that society, from any exercise
+        by You of the rights granted under this License.
+
+The above rights may be exercised in all media and formats whether now
+known or hereafter devised. The above rights include the right to make
+such modifications as are technically necessary to exercise the rights in
+other media and formats. Subject to Section 8(f), all rights not expressly
+granted by Licensor are hereby reserved.
+
+4. Restrictions. The license granted in Section 3 above is expressly made
+subject to and limited by the following restrictions:
+
+ a. You may Distribute or Publicly Perform the Work only under the terms
+    of this License. You must include a copy of, or the Uniform Resource
+    Identifier (URI) for, this License with every copy of the Work You
+    Distribute or Publicly Perform. You may not offer or impose any terms
+    on the Work that restrict the terms of this License or the ability of
+    the recipient of the Work to exercise the rights granted to that
+    recipient under the terms of the License. You may not sublicense the
+    Work. You must keep intact all notices that refer to this License and
+    to the disclaimer of warranties with every copy of the Work You
+    Distribute or Publicly Perform. When You Distribute or Publicly
+    Perform the Work, You may not impose any effective technological
+    measures on the Work that restrict the ability of a recipient of the
+    Work from You to exercise the rights granted to that recipient under
+    the terms of the License. This Section 4(a) applies to the Work as
+    incorporated in a Collection, but this does not require the Collection
+    apart from the Work itself to be made subject to the terms of this
+    License. If You create a Collection, upon notice from any Licensor You
+    must, to the extent practicable, remove from the Collection any credit
+    as required by Section 4(b), as requested. If You create an
+    Adaptation, upon notice from any Licensor You must, to the extent
+    practicable, remove from the Adaptation any credit as required by
+    Section 4(b), as requested.
+ b. If You Distribute, or Publicly Perform the Work or any Adaptations or
+    Collections, You must, unless a request has been made pursuant to
+    Section 4(a), keep intact all copyright notices for the Work and
+    provide, reasonable to the medium or means You are utilizing: (i) the
+    name of the Original Author (or pseudonym, if applicable) if supplied,
+    and/or if the Original Author and/or Licensor designate another party
+    or parties (e.g., a sponsor institute, publishing entity, journal) for
+    attribution ("Attribution Parties") in Licensor's copyright notice,
+    terms of service or by other reasonable means, the name of such party
+    or parties; (ii) the title of the Work if supplied; (iii) to the
+    extent reasonably practicable, the URI, if any, that Licensor
+    specifies to be associated with the Work, unless such URI does not
+    refer to the copyright notice or licensing information for the Work;
+    and (iv) , consistent with Section 3(b), in the case of an Adaptation,
+    a credit identifying the use of the Work in the Adaptation (e.g.,
+    "French translation of the Work by Original Author," or "Screenplay
+    based on original Work by Original Author"). The credit required by
+    this Section 4 (b) may be implemented in any reasonable manner;
+    provided, however, that in the case of a Adaptation or Collection, at
+    a minimum such credit will appear, if a credit for all contributing
+    authors of the Adaptation or Collection appears, then as part of these
+    credits and in a manner at least as prominent as the credits for the
+    other contributing authors. For the avoidance of doubt, You may only
+    use the credit required by this Section for the purpose of attribution
+    in the manner set out above and, by exercising Your rights under this
+    License, You may not implicitly or explicitly assert or imply any
+    connection with, sponsorship or endorsement by the Original Author,
+    Licensor and/or Attribution Parties, as appropriate, of You or Your
+    use of the Work, without the separate, express prior written
+    permission of the Original Author, Licensor and/or Attribution
+    Parties.
+ c. Except as otherwise agreed in writing by the Licensor or as may be
+    otherwise permitted by applicable law, if You Reproduce, Distribute or
+    Publicly Perform the Work either by itself or as part of any
+    Adaptations or Collections, You must not distort, mutilate, modify or
+    take other derogatory action in relation to the Work which would be
+    prejudicial to the Original Author's honor or reputation. Licensor
+    agrees that in those jurisdictions (e.g. Japan), in which any exercise
+    of the right granted in Section 3(b) of this License (the right to
+    make Adaptations) would be deemed to be a distortion, mutilation,
+    modification or other derogatory action prejudicial to the Original
+    Author's honor and reputation, the Licensor will waive or not assert,
+    as appropriate, this Section, to the fullest extent permitted by the
+    applicable national law, to enable You to reasonably exercise Your
+    right under Section 3(b) of this License (right to make Adaptations)
+    but not otherwise.
+
+5. Representations, Warranties and Disclaimer
+
+UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
+OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
+KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
+INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
+FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
+LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
+WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
+OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
+
+6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
+LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
+ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
+ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
+BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. Termination
+
+ a. This License and the rights granted hereunder will terminate
+    automatically upon any breach by You of the terms of this License.
+    Individuals or entities who have received Adaptations or Collections
+    from You under this License, however, will not have their licenses
+    terminated provided such individuals or entities remain in full
+    compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
+    survive any termination of this License.
+ b. Subject to the above terms and conditions, the license granted here is
+    perpetual (for the duration of the applicable copyright in the Work).
+    Notwithstanding the above, Licensor reserves the right to release the
+    Work under different license terms or to stop distributing the Work at
+    any time; provided, however that any such election will not serve to
+    withdraw this License (or any other license that has been, or is
+    required to be, granted under the terms of this License), and this
+    License will continue in full force and effect unless terminated as
+    stated above.
+
+8. Miscellaneous
+
+ a. Each time You Distribute or Publicly Perform the Work or a Collection,
+    the Licensor offers to the recipient a license to the Work on the same
+    terms and conditions as the license granted to You under this License.
+ b. Each time You Distribute or Publicly Perform an Adaptation, Licensor
+    offers to the recipient a license to the original Work on the same
+    terms and conditions as the license granted to You under this License.
+ c. If any provision of this License is invalid or unenforceable under
+    applicable law, it shall not affect the validity or enforceability of
+    the remainder of the terms of this License, and without further action
+    by the parties to this agreement, such provision shall be reformed to
+    the minimum extent necessary to make such provision valid and
+    enforceable.
+ d. No term or provision of this License shall be deemed waived and no
+    breach consented to unless such waiver or consent shall be in writing
+    and signed by the party to be charged with such waiver or consent.
+ e. This License constitutes the entire agreement between the parties with
+    respect to the Work licensed here. There are no understandings,
+    agreements or representations with respect to the Work not specified
+    here. Licensor shall not be bound by any additional provisions that
+    may appear in any communication from You. This License may not be
+    modified without the mutual written agreement of the Licensor and You.
+ f. The rights granted under, and the subject matter referenced, in this
+    License were drafted utilizing the terminology of the Berne Convention
+    for the Protection of Literary and Artistic Works (as amended on
+    September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
+    Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996
+    and the Universal Copyright Convention (as revised on July 24, 1971).
+    These rights and subject matter take effect in the relevant
+    jurisdiction in which the License terms are sought to be enforced
+    according to the corresponding provisions of the implementation of
+    those treaty provisions in the applicable national law. If the
+    standard suite of rights granted under applicable copyright law
+    includes additional rights not granted under this License, such
+    additional rights are deemed to be included in the License; this
+    License is not intended to restrict the license of any rights under
+    applicable law.
+
+
+Creative Commons Notice
+
+    Creative Commons is not a party to this License, and makes no warranty
+    whatsoever in connection with the Work. Creative Commons will not be
+    liable to You or any party on any legal theory for any damages
+    whatsoever, including without limitation any general, special,
+    incidental or consequential damages arising in connection to this
+    license. Notwithstanding the foregoing two (2) sentences, if Creative
+    Commons has expressly identified itself as the Licensor hereunder, it
+    shall have all rights and obligations of Licensor.
+
+    Except for the limited purpose of indicating to the public that the
+    Work is licensed under the CCPL, Creative Commons does not authorize
+    the use by either party of the trademark "Creative Commons" or any
+    related trademark or logo of Creative Commons without the prior
+    written consent of Creative Commons. Any permitted use will be in
+    compliance with Creative Commons' then-current trademark usage
+    guidelines, as may be published on its website or otherwise made
+    available upon request from time to time. For the avoidance of doubt,
+    this trademark restriction does not form part of this License.
+
     Creative Commons may be contacted at https://creativecommons.org/.

BIN
Doc/Cablage.odg


+ 225 - 225
Soft/STM32/ProcCultProto/ProcCultProto.ioc

@@ -1,225 +1,225 @@
-#MicroXplorer Configuration settings - do not modify
-File.Version=6
-GPIO.groupedBy=
-KeepUserPlacement=false
-Mcu.Family=STM32F4
-Mcu.IP0=I2C1
-Mcu.IP1=NVIC
-Mcu.IP2=RCC
-Mcu.IP3=RTC
-Mcu.IP4=SYS
-Mcu.IP5=TIM1
-Mcu.IP6=TIM3
-Mcu.IPNb=7
-Mcu.Name=STM32F401R(B-C)Tx
-Mcu.Package=LQFP64
-Mcu.Pin0=PH0 - OSC_IN
-Mcu.Pin1=PH1 - OSC_OUT
-Mcu.Pin10=PB10
-Mcu.Pin11=PC6
-Mcu.Pin12=PC7
-Mcu.Pin13=PC8
-Mcu.Pin14=PC9
-Mcu.Pin15=PA8
-Mcu.Pin16=PA9
-Mcu.Pin17=PA10
-Mcu.Pin18=PA11
-Mcu.Pin19=PA13
-Mcu.Pin2=PA0-WKUP
-Mcu.Pin20=PA14
-Mcu.Pin21=PA15
-Mcu.Pin22=PB3
-Mcu.Pin23=PB6
-Mcu.Pin24=PB7
-Mcu.Pin25=PB8
-Mcu.Pin26=PB9
-Mcu.Pin27=VP_RTC_VS_RTC_Activate
-Mcu.Pin28=VP_RTC_VS_RTC_Calendar
-Mcu.Pin29=VP_SYS_VS_Systick
-Mcu.Pin3=PA1
-Mcu.Pin30=VP_TIM1_VS_ControllerModeClock
-Mcu.Pin31=VP_TIM1_VS_ClockSourceITR
-Mcu.Pin4=PA2
-Mcu.Pin5=PA3
-Mcu.Pin6=PA4
-Mcu.Pin7=PA5
-Mcu.Pin8=PA6
-Mcu.Pin9=PA7
-Mcu.PinsNb=32
-Mcu.ThirdPartyNb=0
-Mcu.UserConstants=
-Mcu.UserName=STM32F401RCTx
-MxCube.Version=6.2.1
-MxDb.Version=DB.6.0.21
-NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-NVIC.ForceEnableDMAVector=true
-NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
-NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
-NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-PA0-WKUP.Locked=true
-PA0-WKUP.Signal=GPXTI0
-PA1.Locked=true
-PA1.Signal=GPXTI1
-PA10.Signal=S_TIM1_CH3
-PA11.Signal=S_TIM1_CH4
-PA13.Mode=Serial_Wire
-PA13.Signal=SYS_JTMS-SWDIO
-PA14.Mode=Serial_Wire
-PA14.Signal=SYS_JTCK-SWCLK
-PA15.Locked=true
-PA15.Signal=S_TIM2_CH1_ETR
-PA2.Locked=true
-PA2.Signal=GPXTI2
-PA3.Locked=true
-PA3.Signal=GPXTI3
-PA4.Locked=true
-PA4.Signal=GPXTI4
-PA5.Locked=true
-PA5.Signal=GPXTI5
-PA6.Locked=true
-PA6.Signal=GPXTI6
-PA7.Locked=true
-PA7.Signal=GPXTI7
-PA8.Signal=S_TIM1_CH1
-PA9.Signal=S_TIM1_CH2
-PB10.Locked=true
-PB10.Signal=S_TIM2_CH3
-PB3.Locked=true
-PB3.Signal=S_TIM2_CH2
-PB6.Mode=I2C
-PB6.Signal=I2C1_SCL
-PB7.Mode=I2C
-PB7.Signal=I2C1_SDA
-PB8.Locked=true
-PB8.Signal=GPXTI8
-PB9.Locked=true
-PB9.Signal=GPXTI9
-PC6.Locked=true
-PC6.Signal=S_TIM3_CH1
-PC7.Locked=true
-PC7.Signal=S_TIM3_CH2
-PC8.Locked=true
-PC8.Signal=S_TIM3_CH3
-PC9.Locked=true
-PC9.Signal=S_TIM3_CH4
-PH0\ -\ OSC_IN.Mode=HSE-External-Oscillator
-PH0\ -\ OSC_IN.Signal=RCC_OSC_IN
-PH1\ -\ OSC_OUT.Mode=HSE-External-Oscillator
-PH1\ -\ OSC_OUT.Signal=RCC_OSC_OUT
-PinOutPanel.RotationAngle=0
-ProjectManager.AskForMigrate=true
-ProjectManager.BackupPrevious=false
-ProjectManager.CompilerOptimize=6
-ProjectManager.ComputerToolchain=false
-ProjectManager.CoupleFile=false
-ProjectManager.CustomerFirmwarePackage=
-ProjectManager.DefaultFWLocation=true
-ProjectManager.DeletePrevious=true
-ProjectManager.DeviceId=STM32F401RCTx
-ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.26.2
-ProjectManager.FreePins=false
-ProjectManager.HalAssertFull=false
-ProjectManager.HeapSize=0x200
-ProjectManager.KeepUserCode=true
-ProjectManager.LastFirmware=true
-ProjectManager.LibraryCopy=0
-ProjectManager.MainLocation=Core/Src
-ProjectManager.NoMain=false
-ProjectManager.PreviousToolchain=
-ProjectManager.ProjectBuild=false
-ProjectManager.ProjectFileName=ProcCultProto.ioc
-ProjectManager.ProjectName=ProcCultProto
-ProjectManager.RegisterCallBack=
-ProjectManager.StackSize=0x400
-ProjectManager.TargetToolchain=EWARM V8.32
-ProjectManager.ToolChainLocation=
-ProjectManager.UnderRoot=false
-ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_RTC_Init-RTC-false-HAL-true
-RCC.AHBFreq_Value=16000000
-RCC.APB1Freq_Value=16000000
-RCC.APB2Freq_Value=16000000
-RCC.CortexFreq_Value=16000000
-RCC.HSE_VALUE=25000000
-RCC.HSI_VALUE=16000000
-RCC.I2SClocksFreq_Value=96000000
-RCC.IPParameters=AHBFreq_Value,APB1Freq_Value,APB2Freq_Value,CortexFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,PLLCLKFreq_Value,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S
-RCC.LSE_VALUE=32768
-RCC.LSI_VALUE=32000
-RCC.PLLCLKFreq_Value=96000000
-RCC.PLLQCLKFreq_Value=48000000
-RCC.RTCFreq_Value=32000
-RCC.RTCHSEDivFreq_Value=12500000
-RCC.SYSCLKFreq_VALUE=16000000
-RCC.VCOI2SOutputFreq_Value=192000000
-RCC.VCOInputFreq_Value=1000000
-RCC.VCOOutputFreq_Value=192000000
-RCC.VcooutputI2S=96000000
-SH.GPXTI0.0=GPIO_EXTI0
-SH.GPXTI0.ConfNb=1
-SH.GPXTI1.0=GPIO_EXTI1
-SH.GPXTI1.ConfNb=1
-SH.GPXTI2.0=GPIO_EXTI2
-SH.GPXTI2.ConfNb=1
-SH.GPXTI3.0=GPIO_EXTI3
-SH.GPXTI3.ConfNb=1
-SH.GPXTI4.0=GPIO_EXTI4
-SH.GPXTI4.ConfNb=1
-SH.GPXTI5.0=GPIO_EXTI5
-SH.GPXTI5.ConfNb=1
-SH.GPXTI6.0=GPIO_EXTI6
-SH.GPXTI6.ConfNb=1
-SH.GPXTI7.0=GPIO_EXTI7
-SH.GPXTI7.ConfNb=1
-SH.GPXTI8.0=GPIO_EXTI8
-SH.GPXTI8.ConfNb=1
-SH.GPXTI9.0=GPIO_EXTI9
-SH.GPXTI9.ConfNb=1
-SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1
-SH.S_TIM1_CH1.ConfNb=1
-SH.S_TIM1_CH2.0=TIM1_CH2,PWM Generation2 CH2
-SH.S_TIM1_CH2.ConfNb=1
-SH.S_TIM1_CH3.0=TIM1_CH3,PWM Generation3 CH3
-SH.S_TIM1_CH3.ConfNb=1
-SH.S_TIM1_CH4.0=TIM1_CH4,PWM Generation4 CH4
-SH.S_TIM1_CH4.ConfNb=1
-SH.S_TIM2_CH1_ETR.0=TIM2_CH1
-SH.S_TIM2_CH1_ETR.ConfNb=1
-SH.S_TIM2_CH2.0=TIM2_CH2
-SH.S_TIM2_CH2.ConfNb=1
-SH.S_TIM2_CH3.0=TIM2_CH3
-SH.S_TIM2_CH3.ConfNb=1
-SH.S_TIM3_CH1.0=TIM3_CH1,PWM Generation1 CH1
-SH.S_TIM3_CH1.ConfNb=1
-SH.S_TIM3_CH2.0=TIM3_CH2,PWM Generation2 CH2
-SH.S_TIM3_CH2.ConfNb=1
-SH.S_TIM3_CH3.0=TIM3_CH3,PWM Generation3 CH3
-SH.S_TIM3_CH3.ConfNb=1
-SH.S_TIM3_CH4.0=TIM3_CH4,PWM Generation4 CH4
-SH.S_TIM3_CH4.ConfNb=1
-TIM1.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
-TIM1.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
-TIM1.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
-TIM1.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
-TIM1.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation2 CH2,Channel-PWM Generation3 CH3,Channel-PWM Generation4 CH4
-TIM3.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
-TIM3.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
-TIM3.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
-TIM3.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
-TIM3.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation2 CH2,Channel-PWM Generation3 CH3,Channel-PWM Generation4 CH4
-VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled
-VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate
-VP_RTC_VS_RTC_Calendar.Mode=RTC_Calendar
-VP_RTC_VS_RTC_Calendar.Signal=RTC_VS_RTC_Calendar
-VP_SYS_VS_Systick.Mode=SysTick
-VP_SYS_VS_Systick.Signal=SYS_VS_Systick
-VP_TIM1_VS_ClockSourceITR.Mode=TriggerSource_ITR0
-VP_TIM1_VS_ClockSourceITR.Signal=TIM1_VS_ClockSourceITR
-VP_TIM1_VS_ControllerModeClock.Mode=Clock Mode
-VP_TIM1_VS_ControllerModeClock.Signal=TIM1_VS_ControllerModeClock
-board=custom
+#MicroXplorer Configuration settings - do not modify
+File.Version=6
+GPIO.groupedBy=
+KeepUserPlacement=false
+Mcu.Family=STM32F4
+Mcu.IP0=I2C1
+Mcu.IP1=NVIC
+Mcu.IP2=RCC
+Mcu.IP3=RTC
+Mcu.IP4=SYS
+Mcu.IP5=TIM1
+Mcu.IP6=TIM3
+Mcu.IPNb=7
+Mcu.Name=STM32F401R(B-C)Tx
+Mcu.Package=LQFP64
+Mcu.Pin0=PH0 - OSC_IN
+Mcu.Pin1=PH1 - OSC_OUT
+Mcu.Pin10=PB10
+Mcu.Pin11=PC6
+Mcu.Pin12=PC7
+Mcu.Pin13=PC8
+Mcu.Pin14=PC9
+Mcu.Pin15=PA8
+Mcu.Pin16=PA9
+Mcu.Pin17=PA10
+Mcu.Pin18=PA11
+Mcu.Pin19=PA13
+Mcu.Pin2=PA0-WKUP
+Mcu.Pin20=PA14
+Mcu.Pin21=PA15
+Mcu.Pin22=PB3
+Mcu.Pin23=PB6
+Mcu.Pin24=PB7
+Mcu.Pin25=PB8
+Mcu.Pin26=PB9
+Mcu.Pin27=VP_RTC_VS_RTC_Activate
+Mcu.Pin28=VP_RTC_VS_RTC_Calendar
+Mcu.Pin29=VP_SYS_VS_Systick
+Mcu.Pin3=PA1
+Mcu.Pin30=VP_TIM1_VS_ControllerModeClock
+Mcu.Pin31=VP_TIM1_VS_ClockSourceITR
+Mcu.Pin4=PA2
+Mcu.Pin5=PA3
+Mcu.Pin6=PA4
+Mcu.Pin7=PA5
+Mcu.Pin8=PA6
+Mcu.Pin9=PA7
+Mcu.PinsNb=32
+Mcu.ThirdPartyNb=0
+Mcu.UserConstants=
+Mcu.UserName=STM32F401RCTx
+MxCube.Version=6.2.1
+MxDb.Version=DB.6.0.21
+NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.ForceEnableDMAVector=true
+NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
+NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+PA0-WKUP.Locked=true
+PA0-WKUP.Signal=GPXTI0
+PA1.Locked=true
+PA1.Signal=GPXTI1
+PA10.Signal=S_TIM1_CH3
+PA11.Signal=S_TIM1_CH4
+PA13.Mode=Serial_Wire
+PA13.Signal=SYS_JTMS-SWDIO
+PA14.Mode=Serial_Wire
+PA14.Signal=SYS_JTCK-SWCLK
+PA15.Locked=true
+PA15.Signal=S_TIM2_CH1_ETR
+PA2.Locked=true
+PA2.Signal=GPXTI2
+PA3.Locked=true
+PA3.Signal=GPXTI3
+PA4.Locked=true
+PA4.Signal=GPXTI4
+PA5.Locked=true
+PA5.Signal=GPXTI5
+PA6.Locked=true
+PA6.Signal=GPXTI6
+PA7.Locked=true
+PA7.Signal=GPXTI7
+PA8.Signal=S_TIM1_CH1
+PA9.Signal=S_TIM1_CH2
+PB10.Locked=true
+PB10.Signal=S_TIM2_CH3
+PB3.Locked=true
+PB3.Signal=S_TIM2_CH2
+PB6.Mode=I2C
+PB6.Signal=I2C1_SCL
+PB7.Mode=I2C
+PB7.Signal=I2C1_SDA
+PB8.Locked=true
+PB8.Signal=GPXTI8
+PB9.Locked=true
+PB9.Signal=GPXTI9
+PC6.Locked=true
+PC6.Signal=S_TIM3_CH1
+PC7.Locked=true
+PC7.Signal=S_TIM3_CH2
+PC8.Locked=true
+PC8.Signal=S_TIM3_CH3
+PC9.Locked=true
+PC9.Signal=S_TIM3_CH4
+PH0\ -\ OSC_IN.Mode=HSE-External-Oscillator
+PH0\ -\ OSC_IN.Signal=RCC_OSC_IN
+PH1\ -\ OSC_OUT.Mode=HSE-External-Oscillator
+PH1\ -\ OSC_OUT.Signal=RCC_OSC_OUT
+PinOutPanel.RotationAngle=0
+ProjectManager.AskForMigrate=true
+ProjectManager.BackupPrevious=false
+ProjectManager.CompilerOptimize=6
+ProjectManager.ComputerToolchain=false
+ProjectManager.CoupleFile=false
+ProjectManager.CustomerFirmwarePackage=
+ProjectManager.DefaultFWLocation=true
+ProjectManager.DeletePrevious=true
+ProjectManager.DeviceId=STM32F401RCTx
+ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.26.2
+ProjectManager.FreePins=false
+ProjectManager.HalAssertFull=false
+ProjectManager.HeapSize=0x200
+ProjectManager.KeepUserCode=true
+ProjectManager.LastFirmware=true
+ProjectManager.LibraryCopy=0
+ProjectManager.MainLocation=Core/Src
+ProjectManager.NoMain=false
+ProjectManager.PreviousToolchain=
+ProjectManager.ProjectBuild=false
+ProjectManager.ProjectFileName=ProcCultProto.ioc
+ProjectManager.ProjectName=ProcCultProto
+ProjectManager.RegisterCallBack=
+ProjectManager.StackSize=0x400
+ProjectManager.TargetToolchain=EWARM V8.32
+ProjectManager.ToolChainLocation=
+ProjectManager.UnderRoot=false
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_RTC_Init-RTC-false-HAL-true
+RCC.AHBFreq_Value=16000000
+RCC.APB1Freq_Value=16000000
+RCC.APB2Freq_Value=16000000
+RCC.CortexFreq_Value=16000000
+RCC.HSE_VALUE=25000000
+RCC.HSI_VALUE=16000000
+RCC.I2SClocksFreq_Value=96000000
+RCC.IPParameters=AHBFreq_Value,APB1Freq_Value,APB2Freq_Value,CortexFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,PLLCLKFreq_Value,PLLQCLKFreq_Value,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S
+RCC.LSE_VALUE=32768
+RCC.LSI_VALUE=32000
+RCC.PLLCLKFreq_Value=96000000
+RCC.PLLQCLKFreq_Value=48000000
+RCC.RTCFreq_Value=32000
+RCC.RTCHSEDivFreq_Value=12500000
+RCC.SYSCLKFreq_VALUE=16000000
+RCC.VCOI2SOutputFreq_Value=192000000
+RCC.VCOInputFreq_Value=1000000
+RCC.VCOOutputFreq_Value=192000000
+RCC.VcooutputI2S=96000000
+SH.GPXTI0.0=GPIO_EXTI0
+SH.GPXTI0.ConfNb=1
+SH.GPXTI1.0=GPIO_EXTI1
+SH.GPXTI1.ConfNb=1
+SH.GPXTI2.0=GPIO_EXTI2
+SH.GPXTI2.ConfNb=1
+SH.GPXTI3.0=GPIO_EXTI3
+SH.GPXTI3.ConfNb=1
+SH.GPXTI4.0=GPIO_EXTI4
+SH.GPXTI4.ConfNb=1
+SH.GPXTI5.0=GPIO_EXTI5
+SH.GPXTI5.ConfNb=1
+SH.GPXTI6.0=GPIO_EXTI6
+SH.GPXTI6.ConfNb=1
+SH.GPXTI7.0=GPIO_EXTI7
+SH.GPXTI7.ConfNb=1
+SH.GPXTI8.0=GPIO_EXTI8
+SH.GPXTI8.ConfNb=1
+SH.GPXTI9.0=GPIO_EXTI9
+SH.GPXTI9.ConfNb=1
+SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1
+SH.S_TIM1_CH1.ConfNb=1
+SH.S_TIM1_CH2.0=TIM1_CH2,PWM Generation2 CH2
+SH.S_TIM1_CH2.ConfNb=1
+SH.S_TIM1_CH3.0=TIM1_CH3,PWM Generation3 CH3
+SH.S_TIM1_CH3.ConfNb=1
+SH.S_TIM1_CH4.0=TIM1_CH4,PWM Generation4 CH4
+SH.S_TIM1_CH4.ConfNb=1
+SH.S_TIM2_CH1_ETR.0=TIM2_CH1
+SH.S_TIM2_CH1_ETR.ConfNb=1
+SH.S_TIM2_CH2.0=TIM2_CH2
+SH.S_TIM2_CH2.ConfNb=1
+SH.S_TIM2_CH3.0=TIM2_CH3
+SH.S_TIM2_CH3.ConfNb=1
+SH.S_TIM3_CH1.0=TIM3_CH1,PWM Generation1 CH1
+SH.S_TIM3_CH1.ConfNb=1
+SH.S_TIM3_CH2.0=TIM3_CH2,PWM Generation2 CH2
+SH.S_TIM3_CH2.ConfNb=1
+SH.S_TIM3_CH3.0=TIM3_CH3,PWM Generation3 CH3
+SH.S_TIM3_CH3.ConfNb=1
+SH.S_TIM3_CH4.0=TIM3_CH4,PWM Generation4 CH4
+SH.S_TIM3_CH4.ConfNb=1
+TIM1.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
+TIM1.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
+TIM1.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
+TIM1.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
+TIM1.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation2 CH2,Channel-PWM Generation3 CH3,Channel-PWM Generation4 CH4
+TIM3.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
+TIM3.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
+TIM3.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
+TIM3.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4
+TIM3.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation2 CH2,Channel-PWM Generation3 CH3,Channel-PWM Generation4 CH4
+VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled
+VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate
+VP_RTC_VS_RTC_Calendar.Mode=RTC_Calendar
+VP_RTC_VS_RTC_Calendar.Signal=RTC_VS_RTC_Calendar
+VP_SYS_VS_Systick.Mode=SysTick
+VP_SYS_VS_Systick.Signal=SYS_VS_Systick
+VP_TIM1_VS_ClockSourceITR.Mode=TriggerSource_ITR0
+VP_TIM1_VS_ClockSourceITR.Signal=TIM1_VS_ClockSourceITR
+VP_TIM1_VS_ControllerModeClock.Mode=Clock Mode
+VP_TIM1_VS_ControllerModeClock.Signal=TIM1_VS_ControllerModeClock
+board=custom

+ 373 - 373
Soft/arduino/BOX/BOX.ino

@@ -1,373 +1,373 @@
-
-#include <OneWire.h>
-#include <DS18B20.h>  //temp DS18B20_RT by rob tillaart
-#include <DS3231.h>   //RTC DS3231 by andrew wickert
-#include <DHT.h>      //Adafruit
-#include <Wire.h>
-
-/*****************************************************************
-   Déclaration des Capteurs
- *****************************************************************/
-//relay Lumiere
-const int FloBas     = 2;
-const int FullBas    = 3;
-const int CroBas     = 4;
-
-const int FloHaut     = 5;
-const int FullHaut    = 6;
-const int CroHaut     = 7;
-
-int PuissanceMax = 230;
-
-
-//relay Ventilation
-const int DehumPin        = 44;
-const int Extracteur      = 46;
-const int VentilHaut      = 48;
-const int VentilBas       = 50;
-
-//relay Arrosage
-const int Arro1            = 10; // Bas
-const int Arro2            = 11; //Haut
-const int Evacuation      = 12;
-const int Melange         = 13;
-
-//Capteur niveau eau
-const int NiveauEauRecup  = 14;
-const int NiveauEauAqua   = 15;
-
-//Capteur Temp
-#define ONE_WIRE_TEMP 16
-OneWire oneWireTemp(ONE_WIRE_TEMP);
-DS18B20 Temp(&oneWireTemp);
-
-//capteur Hum air
-#define DHTTYPE DHT22
-#define DHTPIN 17
-DHT dht(DHTPIN, DHTTYPE);
-
-//Capteur hum sol
-const int HumidSolHaut = 18;
-const int HumidSolBas  = 19;
-
-//interupteur
-const int interType  = 22;
-const int interLum  = 24;
-const int interONExt  = 26;
-const int interONVentil  = 28;
-const int interOFFExt  = 30;
-const int interONAro  = 32;
-const int interONVid  = 34;
-const int interOFFAro  = 36;
-const int inter9  = 38;
-const int inter10 = 40;
-
-//RTC
-DS3231 Clock;
-
-/*****************************************************************
-   Déclaration des Variables globals
- *****************************************************************/
-
-//Variable lumiere
-int newDay = 1; // Variable pour savoir si nouveau jour.
-int HA;  //heure allumage en minute
-int HE;  //heure extinction en minute (Ha +12Hou18H +/-15min)
-
-//Variable Extraction
-int tmpExtract = 0, humExtract;
-int extract;
-
-//Variabe Arrosage
-int SolBas, SolHaut;
-int HeuArrosageMatin = 30;// 30 min apres l'allumage
-int HeuArrosagesoir = 690; // 30 min avant la fi de l'allumage
-
-int recup;
-int timerecup;
-/***********************************************************************
-     Setup
- **********************************************************************/
-
-void setup() {
-  Serial.begin(9600);
-
-  /***********************************************************************
-    init des pins
-  * *********************************************************************/
-  //Pin ventilation
-  pinMode(DehumPin, OUTPUT);
-  pinMode(Extracteur, OUTPUT);
-  pinMode(VentilHaut, OUTPUT);
-  pinMode(VentilBas, OUTPUT);
-  digitalWrite(DehumPin, HIGH);
-  digitalWrite(Extracteur, HIGH);
-  digitalWrite(VentilHaut, HIGH);
-  digitalWrite(VentilBas, HIGH);
-
-  //Pin Arrosage
-  pinMode(Arro1, OUTPUT);
-  pinMode(Arro2, OUTPUT);
-  pinMode(Melange, OUTPUT);
-  pinMode(Evacuation, OUTPUT);
-  digitalWrite(Arro1, HIGH);
-  digitalWrite(Arro2, HIGH);
-  digitalWrite(Melange, HIGH);
-  digitalWrite(Evacuation, HIGH);
-
-  //interupteur
-  pinMode(interType, INPUT);
-  pinMode(interLum, INPUT);
-  pinMode(interONExt, INPUT);
-  pinMode(interONVentil, INPUT);
-  pinMode(interOFFExt, INPUT);
-  pinMode(interONAro, INPUT);
-  pinMode(interONVid, INPUT);
-  pinMode(interOFFAro, INPUT);
-  pinMode(inter9, INPUT);
-  pinMode(inter10, INPUT);
-
-  pinMode(NiveauEauRecup, INPUT);
-  pinMode(NiveauEauAqua, INPUT);
-
-  /***********************************************************************
-    init des capteurs
-  * *********************************************************************/
-
-  //Capteur Temp
-  Temp.begin();
-  Temp.setResolution(12);
-
-  //capteur Hum air
-  dht.begin();
-
-  //Capteur hum sol
-  pinMode(HumidSolBas, INPUT);
-  pinMode(HumidSolHaut, INPUT);
-
-  //RTC
-  Wire.begin();
-}
-
-void loop() {
-
-  /***********************************************************************
-    Gestion des capteurs
-  * **********************************************************************/
-  //Capteur Temp
-  Temp.requestTemperatures();
-  while (!Temp.isConversionComplete());
-  float Temper = Temp.getTempC();
-
-  //capteur Hum air
-  float hum = dht.readHumidity();
-
-  //Capteur hum sol
-  SolBas = !digitalRead(HumidSolBas);
-  SolHaut = !digitalRead(HumidSolHaut);
-
-  
-    /*Serial.println(digitalRead(interType));
-    Serial.println(digitalRead(interLum));
-    Serial.println(digitalRead(interONExt));
-    Serial.println(digitalRead(interONVentil));
-    Serial.println(digitalRead(interOFFExt));
-    Serial.println(digitalRead(interONAro));
-    Serial.println(digitalRead(interONVid));
-    Serial.println(digitalRead(interOFFAro));
-    Serial.println(digitalRead(inter9));
-    Serial.println(digitalRead(inter10));*/
-
-  //RTC
-  bool h24, am;
-  int heure = Clock.getHour(h24, am );
-  int minu = Clock.getMinute();
-  int sec = Clock.getSecond();
-  int HMin = heure * 60 + minu; // heure en minute
-  long Hsec = HMin * 60 + sec;
-
-  Serial.print("H:");
-  Serial.print(HMin / 60);
-  Serial.print(":");
-  Serial.print(HMin % 60);
-  Serial.print("  T:");
-  Serial.print(Temper);
-  Serial.print("  Hum:");
-  Serial.println(hum);
-
-  /***********************************************************************
-    Gestion de la lumiere
-   * *********************************************************************
-  */
-  if (newDay == 1) {
-    newDay = 0;
-    if (1){//digitalRead(interType)) { //SI intertype ==1 alors Flo
-      Serial.println("Floraison");
-      HA = random (0 , 5);
-      HE = HA + 720 + random(5);
-    }
-    else {
-      Serial.println("Croissance");
-      HA = random (285, 315);
-      HE = HA + 1065 + random(15);
-    }
-  }
-
-  if (HMin == 0) {
-    newDay = 1;
-    recup = 0;
-    digitalWrite(Evacuation, HIGH);
-  }
-
-
-
-  if ((HMin >= HA & HMin < HE)  & digitalRead(interLum)) {
-    Serial.print("Allumage ");
-    analogWrite(FullBas, PuissanceMax);
-    analogWrite(FullHaut, PuissanceMax);
-    if (1) { //SI flo
-      Serial.println("Flo");
-      analogWrite(FloHaut, PuissanceMax);
-      analogWrite(FloBas, PuissanceMax);
-      analogWrite(CroHaut, 0);
-      analogWrite(CroBas, 0);
-    }
-    else {
-      Serial.println("Cro");
-      analogWrite(CroHaut, PuissanceMax);
-      analogWrite(CroBas, PuissanceMax);
-      analogWrite(FloBas, 0);
-      analogWrite(FloHaut, 0);
-    }
-
-  }
-  else {
-    Serial.println("Extinxtion");
-    analogWrite(FullBas, 0);
-    analogWrite(FloBas, 0);
-    analogWrite(CroBas, 0);
-    analogWrite(FullHaut, 0);
-    analogWrite(FloHaut, 0);
-    analogWrite(CroHaut, 0);
-  }
-
-
-  /***********************************************************************
-    Gestion de l'extraction
-  * *********************************************************************/
-  if (Temper >= 26) {
-    Serial.println("tmp >= 26 °C");
-    tmpExtract = 1 ;
-  }
-
-  if (Temper < 25) {
-    Serial.println("tmp <25 °C");
-    tmpExtract = 0;
-  }
-
-  /*if (digitalRead(interType) == 0 & hum > 75) {
-    Serial.println("interType est en croi et plus de 75% d'hum");
-    humExtract = 1;
-    }
-    else if ( digitalRead(interType) == 1 & hum > 60) {
-    Serial.println("interType est en flo et plus de 60 % d'hum");
-    humExtract = 1;
-    }
-    else if ( digitalRead(interType) == 0 & hum < 73) {
-    humExtract = 0;
-    }
-    else if ( hum < 58) {
-    humExtract = 0;
-    }*/
-
-
-  if ((minu == 0 | minu == 1 | tmpExtract | humExtract | digitalRead(interONExt)) & digitalRead(interOFFExt)) {
-    Serial.println("Extracteur ON");
-    digitalWrite(Extracteur, LOW);
-  }
-  else {
-    Serial.println("Extracteur OFF");
-    digitalWrite(Extracteur, HIGH);
-  }
-
-
-  /***********************************************************************
-    Gestion de la ventilation
-  * *********************************************************************/
-  if (minu >= 55 | digitalRead(interONVentil) | tmpExtract | humExtract ) {
-    Serial.println("Ventilation ON");
-    digitalWrite(VentilHaut, LOW);
-    digitalWrite(VentilBas, LOW);
-  }
-  else {
-    Serial.println("Ventilation OFF");
-    digitalWrite(VentilHaut, HIGH);
-    digitalWrite(VentilBas, HIGH);
-  }
-
-  /***********************************************************************
-    Gestion de l'arrosage
-  * *********************************************************************/
-  if (digitalRead(inter9) || (HMin == HeuArrosageMatin || HMin == HeuArrosagesoir)) { //On arrose 1min en bas
-    Serial.println("Arrosage1");
-    digitalWrite(Arro1, LOW);
-  }
-  else {
-    digitalWrite(Arro1, HIGH);
-  }
-
-  if (digitalRead(inter10) || (HMin == HeuArrosageMatin + 1 || HMin == HeuArrosagesoir + 1)) { // puis 1 min en haut
-    Serial.println("Arrosage2");
-    digitalWrite(Arro2, LOW);
-  }
-  else {
-    digitalWrite(Arro2, HIGH);
-  }
-
-  //Melange                   // On mélange 5min avant les arrosage
-  if ((HMin >= HeuArrosageMatin - 5 )&& ( HMin < HeuArrosageMatin )) {
-    Serial.println("Melange");
-    digitalWrite(Melange, LOW);
-  }
-  else {
-    digitalWrite(Melange, HIGH);
-  }
-
-  /***********************************************************************
-    Gestion de l'extraction
-  * *********************************************************************/
-  if (digitalRead(NiveauEauRecup) & recup == 0) {
-    Serial.println("HAUT");
-    recup = 1;
-    timerecup = Hsec;
-  }
-
-  if (digitalRead(NiveauEauRecup) == 0 & recup == 1) {
-    recup = 0;
-    timerecup = Hsec;
-  }
-
-  if (recup & Hsec >= timerecup + 40) {
-    Serial.println("Evacuation");
-    digitalWrite(Evacuation, LOW);
-  }
-  if ((recup == 0 &  Hsec >= timerecup + 5 ) & digitalRead(interONVid) == 0) {
-    Serial.println("Evacuation off");
-    digitalWrite(Evacuation, HIGH);
-  }
-
-  if (digitalRead(interONVid)) {
-    Serial.println("Evacuation manu");
-    digitalWrite(Evacuation, LOW);
-    timerecup = Hsec;
-  }
-
-  /***********************************************************************
-    FIN
-  * *********************************************************************/
-  Serial.println("");
-  Serial.println("");
-
-  delay(500);
-
-}
+
+#include <OneWire.h>
+#include <DS18B20.h>  //temp DS18B20_RT by rob tillaart
+#include <DS3231.h>   //RTC DS3231 by andrew wickert
+#include <DHT.h>      //Adafruit
+#include <Wire.h>
+
+/*****************************************************************
+   Déclaration des Capteurs
+ *****************************************************************/
+//relay Lumiere
+const int FloBas     = 2;
+const int FullBas    = 3;
+const int CroBas     = 4;
+
+const int FloHaut     = 5;
+const int FullHaut    = 6;
+const int CroHaut     = 7;
+
+int PuissanceMax = 230;
+
+
+//relay Ventilation
+const int DehumPin        = 44;
+const int Extracteur      = 46;
+const int VentilHaut      = 48;
+const int VentilBas       = 50;
+
+//relay Arrosage
+const int Arro1            = 10; // Bas
+const int Arro2            = 11; //Haut
+const int Evacuation      = 12;
+const int Melange         = 13;
+
+//Capteur niveau eau
+const int NiveauEauRecup  = 14;
+const int NiveauEauAqua   = 15;
+
+//Capteur Temp
+#define ONE_WIRE_TEMP 16
+OneWire oneWireTemp(ONE_WIRE_TEMP);
+DS18B20 Temp(&oneWireTemp);
+
+//capteur Hum air
+#define DHTTYPE DHT22
+#define DHTPIN 17
+DHT dht(DHTPIN, DHTTYPE);
+
+//Capteur hum sol
+const int HumidSolHaut = 18;
+const int HumidSolBas  = 19;
+
+//interupteur
+const int interType  = 22;
+const int interLum  = 24;
+const int interONExt  = 26;
+const int interONVentil  = 28;
+const int interOFFExt  = 30;
+const int interONAro  = 32;
+const int interONVid  = 34;
+const int interOFFAro  = 36;
+const int inter9  = 38;
+const int inter10 = 40;
+
+//RTC
+DS3231 Clock;
+
+/*****************************************************************
+   Déclaration des Variables globals
+ *****************************************************************/
+
+//Variable lumiere
+int newDay = 1; // Variable pour savoir si nouveau jour.
+int HA;  //heure allumage en minute
+int HE;  //heure extinction en minute (Ha +12Hou18H +/-15min)
+
+//Variable Extraction
+int tmpExtract = 0, humExtract;
+int extract;
+
+//Variabe Arrosage
+int SolBas, SolHaut;
+int HeuArrosageMatin = 30;// 30 min apres l'allumage
+int HeuArrosagesoir = 690; // 30 min avant la fi de l'allumage
+
+int recup;
+int timerecup;
+/***********************************************************************
+     Setup
+ **********************************************************************/
+
+void setup() {
+  Serial.begin(9600);
+
+  /***********************************************************************
+    init des pins
+  * *********************************************************************/
+  //Pin ventilation
+  pinMode(DehumPin, OUTPUT);
+  pinMode(Extracteur, OUTPUT);
+  pinMode(VentilHaut, OUTPUT);
+  pinMode(VentilBas, OUTPUT);
+  digitalWrite(DehumPin, HIGH);
+  digitalWrite(Extracteur, HIGH);
+  digitalWrite(VentilHaut, HIGH);
+  digitalWrite(VentilBas, HIGH);
+
+  //Pin Arrosage
+  pinMode(Arro1, OUTPUT);
+  pinMode(Arro2, OUTPUT);
+  pinMode(Melange, OUTPUT);
+  pinMode(Evacuation, OUTPUT);
+  digitalWrite(Arro1, HIGH);
+  digitalWrite(Arro2, HIGH);
+  digitalWrite(Melange, HIGH);
+  digitalWrite(Evacuation, HIGH);
+
+  //interupteur
+  pinMode(interType, INPUT);
+  pinMode(interLum, INPUT);
+  pinMode(interONExt, INPUT);
+  pinMode(interONVentil, INPUT);
+  pinMode(interOFFExt, INPUT);
+  pinMode(interONAro, INPUT);
+  pinMode(interONVid, INPUT);
+  pinMode(interOFFAro, INPUT);
+  pinMode(inter9, INPUT);
+  pinMode(inter10, INPUT);
+
+  pinMode(NiveauEauRecup, INPUT);
+  pinMode(NiveauEauAqua, INPUT);
+
+  /***********************************************************************
+    init des capteurs
+  * *********************************************************************/
+
+  //Capteur Temp
+  Temp.begin();
+  Temp.setResolution(12);
+
+  //capteur Hum air
+  dht.begin();
+
+  //Capteur hum sol
+  pinMode(HumidSolBas, INPUT);
+  pinMode(HumidSolHaut, INPUT);
+
+  //RTC
+  Wire.begin();
+}
+
+void loop() {
+
+  /***********************************************************************
+    Gestion des capteurs
+  * **********************************************************************/
+  //Capteur Temp
+  Temp.requestTemperatures();
+  while (!Temp.isConversionComplete());
+  float Temper = Temp.getTempC();
+
+  //capteur Hum air
+  float hum = dht.readHumidity();
+
+  //Capteur hum sol
+  SolBas = !digitalRead(HumidSolBas);
+  SolHaut = !digitalRead(HumidSolHaut);
+
+  
+    /*Serial.println(digitalRead(interType));
+    Serial.println(digitalRead(interLum));
+    Serial.println(digitalRead(interONExt));
+    Serial.println(digitalRead(interONVentil));
+    Serial.println(digitalRead(interOFFExt));
+    Serial.println(digitalRead(interONAro));
+    Serial.println(digitalRead(interONVid));
+    Serial.println(digitalRead(interOFFAro));
+    Serial.println(digitalRead(inter9));
+    Serial.println(digitalRead(inter10));*/
+
+  //RTC
+  bool h24, am;
+  int heure = Clock.getHour(h24, am );
+  int minu = Clock.getMinute();
+  int sec = Clock.getSecond();
+  int HMin = heure * 60 + minu; // heure en minute
+  long Hsec = HMin * 60 + sec;
+
+  Serial.print("H:");
+  Serial.print(HMin / 60);
+  Serial.print(":");
+  Serial.print(HMin % 60);
+  Serial.print("  T:");
+  Serial.print(Temper);
+  Serial.print("  Hum:");
+  Serial.println(hum);
+
+  /***********************************************************************
+    Gestion de la lumiere
+   * *********************************************************************
+  */
+  if (newDay == 1) {
+    newDay = 0;
+    if (1){//digitalRead(interType)) { //SI intertype ==1 alors Flo
+      Serial.println("Floraison");
+      HA = random (0 , 5);
+      HE = HA + 720 + random(5);
+    }
+    else {
+      Serial.println("Croissance");
+      HA = random (285, 315);
+      HE = HA + 1065 + random(15);
+    }
+  }
+
+  if (HMin == 0) {
+    newDay = 1;
+    recup = 0;
+    digitalWrite(Evacuation, HIGH);
+  }
+
+
+
+  if ((HMin >= HA & HMin < HE)  & digitalRead(interLum)) {
+    Serial.print("Allumage ");
+    analogWrite(FullBas, PuissanceMax);
+    analogWrite(FullHaut, PuissanceMax);
+    if (1) { //SI flo
+      Serial.println("Flo");
+      analogWrite(FloHaut, PuissanceMax);
+      analogWrite(FloBas, PuissanceMax);
+      analogWrite(CroHaut, 0);
+      analogWrite(CroBas, 0);
+    }
+    else {
+      Serial.println("Cro");
+      analogWrite(CroHaut, PuissanceMax);
+      analogWrite(CroBas, PuissanceMax);
+      analogWrite(FloBas, 0);
+      analogWrite(FloHaut, 0);
+    }
+
+  }
+  else {
+    Serial.println("Extinxtion");
+    analogWrite(FullBas, 0);
+    analogWrite(FloBas, 0);
+    analogWrite(CroBas, 0);
+    analogWrite(FullHaut, 0);
+    analogWrite(FloHaut, 0);
+    analogWrite(CroHaut, 0);
+  }
+
+
+  /***********************************************************************
+    Gestion de l'extraction
+  * *********************************************************************/
+  if (Temper >= 26) {
+    Serial.println("tmp >= 26 °C");
+    tmpExtract = 1 ;
+  }
+
+  if (Temper < 25) {
+    Serial.println("tmp <25 °C");
+    tmpExtract = 0;
+  }
+
+  /*if (digitalRead(interType) == 0 & hum > 75) {
+    Serial.println("interType est en croi et plus de 75% d'hum");
+    humExtract = 1;
+    }
+    else if ( digitalRead(interType) == 1 & hum > 60) {
+    Serial.println("interType est en flo et plus de 60 % d'hum");
+    humExtract = 1;
+    }
+    else if ( digitalRead(interType) == 0 & hum < 73) {
+    humExtract = 0;
+    }
+    else if ( hum < 58) {
+    humExtract = 0;
+    }*/
+
+
+  if ((minu == 0 | minu == 1 | tmpExtract | humExtract | digitalRead(interONExt)) & digitalRead(interOFFExt)) {
+    Serial.println("Extracteur ON");
+    digitalWrite(Extracteur, LOW);
+  }
+  else {
+    Serial.println("Extracteur OFF");
+    digitalWrite(Extracteur, HIGH);
+  }
+
+
+  /***********************************************************************
+    Gestion de la ventilation
+  * *********************************************************************/
+  if (minu >= 55 | digitalRead(interONVentil) | tmpExtract | humExtract ) {
+    Serial.println("Ventilation ON");
+    digitalWrite(VentilHaut, LOW);
+    digitalWrite(VentilBas, LOW);
+  }
+  else {
+    Serial.println("Ventilation OFF");
+    digitalWrite(VentilHaut, HIGH);
+    digitalWrite(VentilBas, HIGH);
+  }
+
+  /***********************************************************************
+    Gestion de l'arrosage
+  * *********************************************************************/
+  if (digitalRead(inter9) || (HMin == HeuArrosageMatin || HMin == HeuArrosagesoir)) { //On arrose 1min en bas
+    Serial.println("Arrosage1");
+    digitalWrite(Arro1, LOW);
+  }
+  else {
+    digitalWrite(Arro1, HIGH);
+  }
+
+  if (digitalRead(inter10) || (HMin == HeuArrosageMatin + 1 || HMin == HeuArrosagesoir + 1)) { // puis 1 min en haut
+    Serial.println("Arrosage2");
+    digitalWrite(Arro2, LOW);
+  }
+  else {
+    digitalWrite(Arro2, HIGH);
+  }
+
+  //Melange                   // On mélange 5min avant les arrosage
+  if ((HMin >= HeuArrosageMatin - 5 )&& ( HMin < HeuArrosageMatin )) {
+    Serial.println("Melange");
+    digitalWrite(Melange, LOW);
+  }
+  else {
+    digitalWrite(Melange, HIGH);
+  }
+
+  /***********************************************************************
+    Gestion de l'extraction
+  * *********************************************************************/
+  if (digitalRead(NiveauEauRecup) & recup == 0) {
+    Serial.println("HAUT");
+    recup = 1;
+    timerecup = Hsec;
+  }
+
+  if (digitalRead(NiveauEauRecup) == 0 & recup == 1) {
+    recup = 0;
+    timerecup = Hsec;
+  }
+
+  if (recup & Hsec >= timerecup + 40) {
+    Serial.println("Evacuation");
+    digitalWrite(Evacuation, LOW);
+  }
+  if ((recup == 0 &  Hsec >= timerecup + 5 ) & digitalRead(interONVid) == 0) {
+    Serial.println("Evacuation off");
+    digitalWrite(Evacuation, HIGH);
+  }
+
+  if (digitalRead(interONVid)) {
+    Serial.println("Evacuation manu");
+    digitalWrite(Evacuation, LOW);
+    timerecup = Hsec;
+  }
+
+  /***********************************************************************
+    FIN
+  * *********************************************************************/
+  Serial.println("");
+  Serial.println("");
+
+  delay(500);
+
+}

+ 220 - 220
Soft/arduino/BOX/test/arro/arro.ino

@@ -1,220 +1,220 @@
-
-#include <OneWire.h>
-#include <DS18B20.h>  //temp DS18B20_RT by rob tillaart
-#include <DS3231.h>   //RTC DS3231 by andrew wickert
-#include <DHT.h>      //Adafruit
-#include <Wire.h>
-
-/*****************************************************************
-   Déclaration des Capteurs
- *****************************************************************/
-//relay Lumiere
-//const int RougeHaut      = 2;
-//const int BleuHaut       = 3;
-
-const int FloBas     = 2;
-const int FullBas    = 3;
-const int CroBas     = 4;
-
-const int FloHaut     = 5;
-const int FullHaut    = 6;
-const int CroHaut     = 7;
-
-//relay Ventilation
-const int DehumPin        = 6;
-const int Extracteur      = 7;
-const int VentilHaut      = 8;
-const int VentilBas       = 9;
-
-//relay Arrosage
-const int Arro1            = 10;
-const int Arro2            = 11;
-const int Evacuation      = 12;
-const int Melange         = 13;
-
-//Capteur niveau eau
-const int NiveauEauRecup  = 14;
-const int NiveauEauAqua   = 15;
-
-//Capteur Temp
-#define ONE_WIRE_TEMP 16
-OneWire oneWireTemp(ONE_WIRE_TEMP);
-DS18B20 Temp(&oneWireTemp);
-
-//capteur Hum air
-#define DHTTYPE DHT22
-#define DHTPIN 17
-DHT dht(DHTPIN, DHTTYPE);
-
-//Capteur hum sol
-const int HumidSolHaut = 18;
-const int HumidSolBas  = 19;
-
-//interupteur
-const int interType  = 22;
-const int interLum  = 24;
-const int interONExt  = 26;
-const int interONVentil  = 28;
-const int interOFFExt  = 30;
-const int interONAro  = 32;
-const int interONVid  = 34;
-const int interOFFAro  = 36;
-const int inter9  = 38;
-const int inter10 = 40;
-
-//RTC
-DS3231 Clock;
-
-/*****************************************************************
-   Déclaration des Variables globals
- *****************************************************************/
-
-//Variable lumiere
-int newDay = 1; // Variable pour savoir si nouveau jour.
-int HA;  //heure allumage en minute
-int HE;  //heure extinction en minute (Ha +12Hou18H +/-15min)
-
-//Variable Extraction
-int tmpExtract = 0, humExtract;
-int extract;
-
-//Variabe Arrosage
-const int delaySecArro = 20;
-const int delaySecEvacuation = 30;
-int SolBas, SolHaut;
-int HeuArrosage;
-/***********************************************************************
-     Setup
- **********************************************************************/
-
-void setup() {
-  Serial.begin(9600);
-
-  /***********************************************************************
-    init des pins
-  * *********************************************************************/
-  //PIN Lumiere
-  /*pinMode(RougeHaut, OUTPUT);
-    pinMode(BleuHaut, OUTPUT);
-
-    //Fullbas
-    //FloBas
-    //CroBas
-    /*
-    pinMode(FullBas, OUTPUT);
-    pinMode(FloBas, OUTPUT);
-    pinMode(CroBas, OUTPUT);*/
-
-  //digitalWrite(RougeHaut, HIGH);
-  //digitalWrite(RougeBas, HIGH);
-  //digitalWrite(BleuHaut, HIGH);
-  //digitalWrite(BleuBas, HIGH);
-
-  //Pin ventilation
-  pinMode(DehumPin, OUTPUT);
-  pinMode(Extracteur, OUTPUT);
-  pinMode(VentilHaut, OUTPUT);
-  pinMode(VentilBas, OUTPUT);
-  digitalWrite(DehumPin, HIGH);
-  digitalWrite(Extracteur, HIGH);
-  digitalWrite(VentilHaut, HIGH);
-  digitalWrite(VentilBas, HIGH);
-
-  //Pin Arrosage
-  pinMode(Arro1, OUTPUT);
-  pinMode(Arro2, OUTPUT);
-  pinMode(Evacuation, OUTPUT);
-  pinMode(Melange, OUTPUT);
-  digitalWrite(Arro1, HIGH);
-  digitalWrite(Arro2, HIGH);
-  digitalWrite(Evacuation, HIGH);
-  digitalWrite(Melange, HIGH);
-
-  pinMode(NiveauEauRecup, INPUT);
-
-  int lum = 20;
-  analogWrite(FullBas, lum);
-  analogWrite(FloBas, 0);
-  analogWrite(CroBas, 0);
-
-  analogWrite(FullHaut, lum);
-  analogWrite(FloHaut, 0);
-  analogWrite(CroHaut, 0);
-
-
-}
-/*
-  const int Arro1            = 10;
-  const int Arro2            = 11;
-  const int Evacuation      = 12;
-  const int Melange         = 13;
-*/
-int incomingByte = 0; // for incoming serial data
-// a marche 1     97
-// z arret 1      122
-// q marche 2     113
-// s arret 2      115
-
-int luminosite = 0;
-void loop() {
-  //Fullbas
-  //FloBas
-  //CroBas
-
-  //delay(5000);
-
-
-  int full = 0;
-  int flo = full;
-  int cro = 0;
-
-  /*analogWrite(FullBas, full);
-    analogWrite(FloBas, flo);
-    analogWrite(CroBas, cro);
-
-    analogWrite(FullHaut, full);
-    analogWrite(FloHaut, flo);
-    analogWrite(CroHaut, cro);*/
-
-  /*digitalWrite(Melange, LOW);
-    delay(500);
-    digitalWrite(Melange, HIGH);
-    delay(500);//*/
-
-
-  if (Serial.available() > 0) {
-    incomingByte = Serial.read();
-
-
-    switch (incomingByte) {
-      case ('a'):
-        Serial.println("MArche1");
-        digitalWrite(Arro1, LOW);
-        break;
-      case ('z'):
-        Serial.println("Arret1");
-        digitalWrite(Arro1, HIGH);
-        break;
-      case ('q'):
-        Serial.println("MArche2");
-        digitalWrite(Arro2, LOW);
-        break;
-      case ('s'):
-        Serial.println("Arret2");
-        digitalWrite(Arro2, HIGH);
-        break;
-      case ('w'):
-        Serial.println("vide");
-        digitalWrite(Evacuation, LOW);
-        break;
-      case ('x'):
-        Serial.println("arretvide");
-        digitalWrite(Evacuation, HIGH);
-        break;
-      default:
-        break;
-    }
-  }//*/
-
-  //Serial.println(digitalRead(NiveauEauRecup));
-}
+
+#include <OneWire.h>
+#include <DS18B20.h>  //temp DS18B20_RT by rob tillaart
+#include <DS3231.h>   //RTC DS3231 by andrew wickert
+#include <DHT.h>      //Adafruit
+#include <Wire.h>
+
+/*****************************************************************
+   Déclaration des Capteurs
+ *****************************************************************/
+//relay Lumiere
+//const int RougeHaut      = 2;
+//const int BleuHaut       = 3;
+
+const int FloBas     = 2;
+const int FullBas    = 3;
+const int CroBas     = 4;
+
+const int FloHaut     = 5;
+const int FullHaut    = 6;
+const int CroHaut     = 7;
+
+//relay Ventilation
+const int DehumPin        = 6;
+const int Extracteur      = 7;
+const int VentilHaut      = 8;
+const int VentilBas       = 9;
+
+//relay Arrosage
+const int Arro1            = 10;
+const int Arro2            = 11;
+const int Evacuation      = 12;
+const int Melange         = 13;
+
+//Capteur niveau eau
+const int NiveauEauRecup  = 14;
+const int NiveauEauAqua   = 15;
+
+//Capteur Temp
+#define ONE_WIRE_TEMP 16
+OneWire oneWireTemp(ONE_WIRE_TEMP);
+DS18B20 Temp(&oneWireTemp);
+
+//capteur Hum air
+#define DHTTYPE DHT22
+#define DHTPIN 17
+DHT dht(DHTPIN, DHTTYPE);
+
+//Capteur hum sol
+const int HumidSolHaut = 18;
+const int HumidSolBas  = 19;
+
+//interupteur
+const int interType  = 22;
+const int interLum  = 24;
+const int interONExt  = 26;
+const int interONVentil  = 28;
+const int interOFFExt  = 30;
+const int interONAro  = 32;
+const int interONVid  = 34;
+const int interOFFAro  = 36;
+const int inter9  = 38;
+const int inter10 = 40;
+
+//RTC
+DS3231 Clock;
+
+/*****************************************************************
+   Déclaration des Variables globals
+ *****************************************************************/
+
+//Variable lumiere
+int newDay = 1; // Variable pour savoir si nouveau jour.
+int HA;  //heure allumage en minute
+int HE;  //heure extinction en minute (Ha +12Hou18H +/-15min)
+
+//Variable Extraction
+int tmpExtract = 0, humExtract;
+int extract;
+
+//Variabe Arrosage
+const int delaySecArro = 20;
+const int delaySecEvacuation = 30;
+int SolBas, SolHaut;
+int HeuArrosage;
+/***********************************************************************
+     Setup
+ **********************************************************************/
+
+void setup() {
+  Serial.begin(9600);
+
+  /***********************************************************************
+    init des pins
+  * *********************************************************************/
+  //PIN Lumiere
+  /*pinMode(RougeHaut, OUTPUT);
+    pinMode(BleuHaut, OUTPUT);
+
+    //Fullbas
+    //FloBas
+    //CroBas
+    /*
+    pinMode(FullBas, OUTPUT);
+    pinMode(FloBas, OUTPUT);
+    pinMode(CroBas, OUTPUT);*/
+
+  //digitalWrite(RougeHaut, HIGH);
+  //digitalWrite(RougeBas, HIGH);
+  //digitalWrite(BleuHaut, HIGH);
+  //digitalWrite(BleuBas, HIGH);
+
+  //Pin ventilation
+  pinMode(DehumPin, OUTPUT);
+  pinMode(Extracteur, OUTPUT);
+  pinMode(VentilHaut, OUTPUT);
+  pinMode(VentilBas, OUTPUT);
+  digitalWrite(DehumPin, HIGH);
+  digitalWrite(Extracteur, HIGH);
+  digitalWrite(VentilHaut, HIGH);
+  digitalWrite(VentilBas, HIGH);
+
+  //Pin Arrosage
+  pinMode(Arro1, OUTPUT);
+  pinMode(Arro2, OUTPUT);
+  pinMode(Evacuation, OUTPUT);
+  pinMode(Melange, OUTPUT);
+  digitalWrite(Arro1, HIGH);
+  digitalWrite(Arro2, HIGH);
+  digitalWrite(Evacuation, HIGH);
+  digitalWrite(Melange, HIGH);
+
+  pinMode(NiveauEauRecup, INPUT);
+
+  int lum = 20;
+  analogWrite(FullBas, lum);
+  analogWrite(FloBas, 0);
+  analogWrite(CroBas, 0);
+
+  analogWrite(FullHaut, lum);
+  analogWrite(FloHaut, 0);
+  analogWrite(CroHaut, 0);
+
+
+}
+/*
+  const int Arro1            = 10;
+  const int Arro2            = 11;
+  const int Evacuation      = 12;
+  const int Melange         = 13;
+*/
+int incomingByte = 0; // for incoming serial data
+// a marche 1     97
+// z arret 1      122
+// q marche 2     113
+// s arret 2      115
+
+int luminosite = 0;
+void loop() {
+  //Fullbas
+  //FloBas
+  //CroBas
+
+  //delay(5000);
+
+
+  int full = 0;
+  int flo = full;
+  int cro = 0;
+
+  /*analogWrite(FullBas, full);
+    analogWrite(FloBas, flo);
+    analogWrite(CroBas, cro);
+
+    analogWrite(FullHaut, full);
+    analogWrite(FloHaut, flo);
+    analogWrite(CroHaut, cro);*/
+
+  /*digitalWrite(Melange, LOW);
+    delay(500);
+    digitalWrite(Melange, HIGH);
+    delay(500);//*/
+
+
+  if (Serial.available() > 0) {
+    incomingByte = Serial.read();
+
+
+    switch (incomingByte) {
+      case ('a'):
+        Serial.println("MArche1");
+        digitalWrite(Arro1, LOW);
+        break;
+      case ('z'):
+        Serial.println("Arret1");
+        digitalWrite(Arro1, HIGH);
+        break;
+      case ('q'):
+        Serial.println("MArche2");
+        digitalWrite(Arro2, LOW);
+        break;
+      case ('s'):
+        Serial.println("Arret2");
+        digitalWrite(Arro2, HIGH);
+        break;
+      case ('w'):
+        Serial.println("vide");
+        digitalWrite(Evacuation, LOW);
+        break;
+      case ('x'):
+        Serial.println("arretvide");
+        digitalWrite(Evacuation, HIGH);
+        break;
+      default:
+        break;
+    }
+  }//*/
+
+  //Serial.println(digitalRead(NiveauEauRecup));
+}

+ 153 - 153
Soft/arduino/Mere/Mere.ino

@@ -1,153 +1,153 @@
-
-
-#include <DS3231.h>   //RTC DS3231 by andrew wickert
-#include <Wire.h>
-
-
-
-
-/*****************************************************************
-   Déclaration des Capteurs
- *****************************************************************/
-//relay Lumiere
-const int Double      = 5;
-
-//relay Arrosage
-const int Arro    = 4;
-
-//relay aditionnel
-const int add = 3;
-
-//relay Ventilation
-const int Ventil  = 2;
-/*
-  //Interrupteur
-  const int interLumBas  = 6; //inter Lumiere bas ON/OFF
-  const int interLumOff  = 7; //inter Lumiere OFF
-  const int interVentAuto  = 8; //inter Ventilation ON/Auto
-  const int interVentOff  = 9; //inter Ventilation OFF
-  const int interArroAuto  = 10;//inter Arro ON/Auto
-  const int interArroOff  = 11;//inter Arro OFF
-  const int inter7  = 12;*/
-
-//RTC
-DS3231 Clock;
-
-/*****************************************************************
-   Déclaration des Variables globals
- *****************************************************************/
-
-//Variable lumiere
-int newDay = 1; // Variable pour savoir si nouveau jour.
-int HA;  //heure allumage en minute
-int HE;  //heure extinction en minute (Ha +18H +/-15min)
-
-//Variable Extraction
-int tmpExtract, humExtract;
-int extract;
-
-//Variabe Arrosage
-int HAro = 19 * 60;//Heure d'arrosage en minute
-
-/***********************************************************************
-Setup
-**********************************************************************/
-
-void setup() {
-  Serial.begin(9600);
-
-  /***********************************************************************
-    init des pins
-  * *********************************************************************/
-  //PIN Lumiere
-  pinMode(Double, OUTPUT);
-  digitalWrite(Double, HIGH);
-
-  //Pin ventilation
-  pinMode(Ventil, OUTPUT);
-  digitalWrite(Ventil, HIGH);
-
-  //Pin Arrosage
-  pinMode(Arro, OUTPUT);
-  digitalWrite(Arro, HIGH);
-
-
-  /***********************************************************************
-    init des capteurs
-  * *********************************************************************/
-
-  //RTC
-  Wire.begin();
-}
-
-void loop() {
-
-  /***********************************************************************
-    Gestion des capteurs
-  * **********************************************************************/
-
-  //RTC
-  bool h24, am;
-  int heure = Clock.getHour(h24, am );
-  int minu = Clock.getMinute();
-  int sec = Clock.getSecond();
-
-  int HMin = heure * 60 + minu; // heure en minute
-
-  Serial.print(heure);
-  Serial.print(":");
-  Serial.println(minu);
-
-  /***********************************************************************
-    Gestion de la lumiere
-   * *********************************************************************
-  */
-  if (newDay == 1) {
-    newDay = 0;
-    HA = random (232, 247);
-    HE = HA + 1065 + random(15);
-  }
-
-  if (HMin == 0) {
-    newDay = 1;
-  }
-
-  if (HMin >= HA & HMin < HE) { //On met en route si on est dans le temps et que l'inter2 est en allumé
-    Serial.println("Double lumiere ON");
-    digitalWrite(Double, LOW);
-  }
-
-  else {
-    Serial.println("Lumiere Eteint");
-    digitalWrite(Double, HIGH);
-  }
-
-
-  /***********************************************************************
-    Gestion de l'extraction
-  * *********************************************************************/
-  if (minu >= 50) {
-    Serial.println("Extracteur ON");
-    digitalWrite(Ventil, LOW);
-  }
-  else {
-    Serial.println("Extracteur OFF");
-    digitalWrite(Ventil, HIGH);
-  }
-
-  /***********************************************************************
-    Gestion de l'arrosage
-  * *********************************************************************/
-
-  if (HMin == HAro & sec < 30) {
-    Serial.println("arro ON");
-    digitalWrite(Arro, LOW);
-  } else {
-    Serial.println("arro OFF");
-    digitalWrite(Arro, HIGH);
-  }
-
-  Serial.println("");
-  Serial.println("");
-  delay(1000);
-}
+
+
+#include <DS3231.h>   //RTC DS3231 by andrew wickert
+#include <Wire.h>
+
+
+
+
+/*****************************************************************
+   Déclaration des Capteurs
+ *****************************************************************/
+//relay Lumiere
+const int Double      = 5;
+
+//relay Arrosage
+const int Arro    = 4;
+
+//relay aditionnel
+const int add = 3;
+
+//relay Ventilation
+const int Ventil  = 2;
+/*
+  //Interrupteur
+  const int interLumBas  = 6; //inter Lumiere bas ON/OFF
+  const int interLumOff  = 7; //inter Lumiere OFF
+  const int interVentAuto  = 8; //inter Ventilation ON/Auto
+  const int interVentOff  = 9; //inter Ventilation OFF
+  const int interArroAuto  = 10;//inter Arro ON/Auto
+  const int interArroOff  = 11;//inter Arro OFF
+  const int inter7  = 12;*/
+
+//RTC
+DS3231 Clock;
+
+/*****************************************************************
+   Déclaration des Variables globals
+ *****************************************************************/
+
+//Variable lumiere
+int newDay = 1; // Variable pour savoir si nouveau jour.
+int HA;  //heure allumage en minute
+int HE;  //heure extinction en minute (Ha +18H +/-15min)
+
+//Variable Extraction
+int tmpExtract, humExtract;
+int extract;
+
+//Variabe Arrosage
+int HAro = 19 * 60;//Heure d'arrosage en minute
+
+/***********************************************************************
+Setup
+**********************************************************************/
+
+void setup() {
+  Serial.begin(9600);
+
+  /***********************************************************************
+    init des pins
+  * *********************************************************************/
+  //PIN Lumiere
+  pinMode(Double, OUTPUT);
+  digitalWrite(Double, HIGH);
+
+  //Pin ventilation
+  pinMode(Ventil, OUTPUT);
+  digitalWrite(Ventil, HIGH);
+
+  //Pin Arrosage
+  pinMode(Arro, OUTPUT);
+  digitalWrite(Arro, HIGH);
+
+
+  /***********************************************************************
+    init des capteurs
+  * *********************************************************************/
+
+  //RTC
+  Wire.begin();
+}
+
+void loop() {
+
+  /***********************************************************************
+    Gestion des capteurs
+  * **********************************************************************/
+
+  //RTC
+  bool h24, am;
+  int heure = Clock.getHour(h24, am );
+  int minu = Clock.getMinute();
+  int sec = Clock.getSecond();
+
+  int HMin = heure * 60 + minu; // heure en minute
+
+  Serial.print(heure);
+  Serial.print(":");
+  Serial.println(minu);
+
+  /***********************************************************************
+    Gestion de la lumiere
+   * *********************************************************************
+  */
+  if (newDay == 1) {
+    newDay = 0;
+    HA = random (232, 247);
+    HE = HA + 1065 + random(15);
+  }
+
+  if (HMin == 0) {
+    newDay = 1;
+  }
+
+  if (HMin >= HA & HMin < HE) { //On met en route si on est dans le temps et que l'inter2 est en allumé
+    Serial.println("Double lumiere ON");
+    digitalWrite(Double, LOW);
+  }
+
+  else {
+    Serial.println("Lumiere Eteint");
+    digitalWrite(Double, HIGH);
+  }
+
+
+  /***********************************************************************
+    Gestion de l'extraction
+  * *********************************************************************/
+  if (minu >= 50) {
+    Serial.println("Extracteur ON");
+    digitalWrite(Ventil, LOW);
+  }
+  else {
+    Serial.println("Extracteur OFF");
+    digitalWrite(Ventil, HIGH);
+  }
+
+  /***********************************************************************
+    Gestion de l'arrosage
+  * *********************************************************************/
+
+  if (HMin == HAro & sec < 30) {
+    Serial.println("arro ON");
+    digitalWrite(Arro, LOW);
+  } else {
+    Serial.println("arro OFF");
+    digitalWrite(Arro, HIGH);
+  }
+
+  Serial.println("");
+  Serial.println("");
+  delay(1000);
+}

+ 163 - 163
Soft/arduino/tmp/tmp.ino

@@ -1,163 +1,163 @@
-
-#include <OneWire.h>
-#include <DS18B20.h>  //DS18B20_RT by rob tillaart
-#include <DS3231.h>   //DS3231 by andrew wickert
-#include <Wire.h>
-
-//pin relay
-const int Rouge1Pin       = 3;
-const int Rouge2Pin       = 4;
-const int Bleu1Pin        = 5;
-const int Bleu2Pin        = 6;
-const int Bleu3Pin        = 7;
-const int DehumPin        = 8;
-const int VentilPin       = 9;
-const int ExtracteurPin   = 10;
-const int ArroFlo         = 11;
-const int ArroCroi        = 12;
-const int Evacuation      = 13;
-
-//pin inter
-const int inter1  = 22; //inter extinction lumiere
-const int inter2  = 24; //inter marche forcé ventilation
-const int inter3  = 26;
-const int inter4  = 28;
-const int inter5  = 30;
-const int inter6  = 32;
-const int inter7  = 34;
-const int inter8  = 36;
-const int inter9  = 38;
-const int inter10 = 40;
-
-//pin Capteur
-#define ONE_WIRE_TEMP 14
-// humide air 15
-const int HumidSolCro = 46;
-const int HumidSolFlo = 48;
-
-
-//Variable lumiere
-int newDay = 1; // Variable pour savoir si nouveau jour.
-int HAFlo;  //heure allumage floraison en minute (9H45 ou 10H15)
-int HEFlo;  //heure extinction floraison en minute (HaFlo +12H +/-15min)
-int HACro;  //heure allumage croissance en minute (4H45 ou 5H15)
-int HECro;  //heure extinction croissance en minute (HaFlo +18H +/-15min)
-
-OneWire oneWireTemp(ONE_WIRE_TEMP);
-DS18B20 Temp(&oneWireTemp);
-DS3231 Clock;
-
-void setup() {
-  Serial.begin(9600);
-
-
-  /***********************************************************************
-                         init des pins
-  * *********************************************************************
-  */
-
-  pinMode(Rouge1Pin, OUTPUT);
-  pinMode(Rouge2Pin, OUTPUT);
-  pinMode(Bleu1Pin, OUTPUT);
-  pinMode(Bleu2Pin, OUTPUT);
-  pinMode(Bleu3Pin, OUTPUT);
-  pinMode(DehumPin, OUTPUT);
-  pinMode(VentilPin, OUTPUT);
-  pinMode(ExtracteurPin, OUTPUT);
-  pinMode(ArroFlo, OUTPUT);
-  pinMode(ArroCroi, OUTPUT);
-  pinMode(Evacuation, OUTPUT);
-
-  pinMode(inter1, INPUT);   //extinction lumiere
-  pinMode(inter2, INPUT);   //inter marche forcé ventilation
-  pinMode(inter3, INPUT);   //60%/70%
-  pinMode(inter4, INPUT);   //croissance mere
-  pinMode(inter5, INPUT);
-  pinMode(inter6, INPUT);   //Arrosage1 on
-  pinMode(inter7, INPUT);   //Arrosage2 on
-  pinMode(inter8, INPUT);   //pompe vidange on
-  pinMode(inter9, INPUT);   //Arrosage flo auto
-  pinMode(inter10, INPUT);  //Arrosage Cro auto
-
-  pinMode(HumidSolCro, INPUT);
-  pinMode(HumidSolFlo, INPUT);
-
-  /***********************************************************************
-                         init des capteurs
-  * *********************************************************************
-  */
-  Wire.begin();
-  Temp.begin();
-  Temp.setResolution(12);
-}
-
-
-void loop() {
-
-  /***********************************************************************
-                         Gestion des capteurs
-  * *********************************************************************
-  */
-  //temperature
-  Temp.requestTemperatures();
-  while (!Temp.isConversionComplete());
-  float Temper = Temp.getTempC();
-
-  //heure
-  bool h24, am;
-  int heure = Clock.getHour(h24, am );
-  int minu = Clock.getMinute();
-  int HMin = heure * 60 + minu; // heure en minute
-
-  //Hydrometrie
-
-  /***********************************************************************
-                          Gestion de la lumiere
-   * *********************************************************************
-  */
-
-
-  if (newDay == 1) {
-    newDay = 0;
-    HAFlo = random (585, 615);
-    HEFlo = HAFlo + 705 + random(30);
-    HACro = random (285, 315);
-    HECro = HACro + 1065 + random(30);
-  }
-
-  if (HMin == 0)
-    newDay = 1;
-
-  if (HMin >= HAFlo & HMin < HEFlo) {
-    digitalWrite(Rouge1Pin, LOW);
-    digitalWrite(Rouge2Pin, LOW);
-  }
-  else {
-    digitalWrite(Rouge1Pin, HIGH);
-    digitalWrite(Rouge2Pin, HIGH);
-  }
-
-  if (HMin >= HACro & HMin < HECro) {
-    digitalWrite(Bleu1Pin, LOW);
-    digitalWrite(Bleu2Pin, LOW);
-    digitalWrite(Bleu3Pin, LOW);
-  }
-  else {
-    digitalWrite(Bleu1Pin, HIGH);
-    digitalWrite(Bleu2Pin, HIGH);
-    digitalWrite(Bleu3Pin, HIGH);
-  }
-
-
-  /***********************************************************************
-                         Gestion de l'extraction
-  * *********************************************************************
-  */
-  if (minu == 0 | minu == 1 | Temper >= 27)
-    digitalWrite(ExtracteurPin, LOW);
-  else
-    digitalWrite(ExtracteurPin, HIGH);
-
-
-  delay(10000);
-}
+
+#include <OneWire.h>
+#include <DS18B20.h>  //DS18B20_RT by rob tillaart
+#include <DS3231.h>   //DS3231 by andrew wickert
+#include <Wire.h>
+
+//pin relay
+const int Rouge1Pin       = 3;
+const int Rouge2Pin       = 4;
+const int Bleu1Pin        = 5;
+const int Bleu2Pin        = 6;
+const int Bleu3Pin        = 7;
+const int DehumPin        = 8;
+const int VentilPin       = 9;
+const int ExtracteurPin   = 10;
+const int ArroFlo         = 11;
+const int ArroCroi        = 12;
+const int Evacuation      = 13;
+
+//pin inter
+const int inter1  = 22; //inter extinction lumiere
+const int inter2  = 24; //inter marche forcé ventilation
+const int inter3  = 26;
+const int inter4  = 28;
+const int inter5  = 30;
+const int inter6  = 32;
+const int inter7  = 34;
+const int inter8  = 36;
+const int inter9  = 38;
+const int inter10 = 40;
+
+//pin Capteur
+#define ONE_WIRE_TEMP 14
+// humide air 15
+const int HumidSolCro = 46;
+const int HumidSolFlo = 48;
+
+
+//Variable lumiere
+int newDay = 1; // Variable pour savoir si nouveau jour.
+int HAFlo;  //heure allumage floraison en minute (9H45 ou 10H15)
+int HEFlo;  //heure extinction floraison en minute (HaFlo +12H +/-15min)
+int HACro;  //heure allumage croissance en minute (4H45 ou 5H15)
+int HECro;  //heure extinction croissance en minute (HaFlo +18H +/-15min)
+
+OneWire oneWireTemp(ONE_WIRE_TEMP);
+DS18B20 Temp(&oneWireTemp);
+DS3231 Clock;
+
+void setup() {
+  Serial.begin(9600);
+
+
+  /***********************************************************************
+                         init des pins
+  * *********************************************************************
+  */
+
+  pinMode(Rouge1Pin, OUTPUT);
+  pinMode(Rouge2Pin, OUTPUT);
+  pinMode(Bleu1Pin, OUTPUT);
+  pinMode(Bleu2Pin, OUTPUT);
+  pinMode(Bleu3Pin, OUTPUT);
+  pinMode(DehumPin, OUTPUT);
+  pinMode(VentilPin, OUTPUT);
+  pinMode(ExtracteurPin, OUTPUT);
+  pinMode(ArroFlo, OUTPUT);
+  pinMode(ArroCroi, OUTPUT);
+  pinMode(Evacuation, OUTPUT);
+
+  pinMode(inter1, INPUT);   //extinction lumiere
+  pinMode(inter2, INPUT);   //inter marche forcé ventilation
+  pinMode(inter3, INPUT);   //60%/70%
+  pinMode(inter4, INPUT);   //croissance mere
+  pinMode(inter5, INPUT);
+  pinMode(inter6, INPUT);   //Arrosage1 on
+  pinMode(inter7, INPUT);   //Arrosage2 on
+  pinMode(inter8, INPUT);   //pompe vidange on
+  pinMode(inter9, INPUT);   //Arrosage flo auto
+  pinMode(inter10, INPUT);  //Arrosage Cro auto
+
+  pinMode(HumidSolCro, INPUT);
+  pinMode(HumidSolFlo, INPUT);
+
+  /***********************************************************************
+                         init des capteurs
+  * *********************************************************************
+  */
+  Wire.begin();
+  Temp.begin();
+  Temp.setResolution(12);
+}
+
+
+void loop() {
+
+  /***********************************************************************
+                         Gestion des capteurs
+  * *********************************************************************
+  */
+  //temperature
+  Temp.requestTemperatures();
+  while (!Temp.isConversionComplete());
+  float Temper = Temp.getTempC();
+
+  //heure
+  bool h24, am;
+  int heure = Clock.getHour(h24, am );
+  int minu = Clock.getMinute();
+  int HMin = heure * 60 + minu; // heure en minute
+
+  //Hydrometrie
+
+  /***********************************************************************
+                          Gestion de la lumiere
+   * *********************************************************************
+  */
+
+
+  if (newDay == 1) {
+    newDay = 0;
+    HAFlo = random (585, 615);
+    HEFlo = HAFlo + 705 + random(30);
+    HACro = random (285, 315);
+    HECro = HACro + 1065 + random(30);
+  }
+
+  if (HMin == 0)
+    newDay = 1;
+
+  if (HMin >= HAFlo & HMin < HEFlo) {
+    digitalWrite(Rouge1Pin, LOW);
+    digitalWrite(Rouge2Pin, LOW);
+  }
+  else {
+    digitalWrite(Rouge1Pin, HIGH);
+    digitalWrite(Rouge2Pin, HIGH);
+  }
+
+  if (HMin >= HACro & HMin < HECro) {
+    digitalWrite(Bleu1Pin, LOW);
+    digitalWrite(Bleu2Pin, LOW);
+    digitalWrite(Bleu3Pin, LOW);
+  }
+  else {
+    digitalWrite(Bleu1Pin, HIGH);
+    digitalWrite(Bleu2Pin, HIGH);
+    digitalWrite(Bleu3Pin, HIGH);
+  }
+
+
+  /***********************************************************************
+                         Gestion de l'extraction
+  * *********************************************************************
+  */
+  if (minu == 0 | minu == 1 | Temper >= 27)
+    digitalWrite(ExtracteurPin, LOW);
+  else
+    digitalWrite(ExtracteurPin, HIGH);
+
+
+  delay(10000);
+}

BIN
eda/Arrosage/Arrosage-backups/Arrosage-2024-06-17_125204.zip


+ 2 - 0
eda/Arrosage/Arrosage.kicad_prl

@@ -3,10 +3,12 @@
     "active_layer": 0,
     "active_layer_preset": "",
     "auto_track_width": true,
+    "hidden_netclasses": [],
     "hidden_nets": [],
     "high_contrast_mode": 0,
     "net_color_mode": 1,
     "opacity": {
+      "images": 0.6,
       "pads": 1.0,
       "tracks": 1.0,
       "vias": 1.0,

+ 22 - 6
eda/Arrosage/Arrosage.kicad_pro

@@ -1,5 +1,6 @@
 {
   "board": {
+    "3dviewports": [],
     "design_settings": {
       "defaults": {
         "board_outline_line_width": 0.1,
@@ -22,7 +23,8 @@
       "track_widths": [],
       "via_dimensions": []
     },
-    "layer_presets": []
+    "layer_presets": [],
+    "viewports": []
   },
   "boards": [],
   "cvpcb": {
@@ -206,18 +208,23 @@
     "rule_severities": {
       "bus_definition_conflict": "error",
       "bus_entry_needed": "error",
-      "bus_label_syntax": "error",
       "bus_to_bus_conflict": "error",
       "bus_to_net_conflict": "error",
+      "conflicting_netclasses": "error",
       "different_unit_footprint": "error",
       "different_unit_net": "error",
       "duplicate_reference": "error",
       "duplicate_sheet_names": "error",
+      "endpoint_off_grid": "warning",
       "extra_units": "error",
       "global_label_dangling": "warning",
       "hier_label_mismatch": "error",
       "label_dangling": "error",
       "lib_symbol_issues": "warning",
+      "missing_bidi_pin": "warning",
+      "missing_input_pin": "warning",
+      "missing_power_pin": "error",
+      "missing_unit": "warning",
       "multiple_net_names": "warning",
       "net_not_bus_member": "warning",
       "no_connect_connected": "warning",
@@ -227,6 +234,7 @@
       "pin_to_pin": "warning",
       "power_pin_not_driven": "error",
       "similar_labels": "warning",
+      "simulation_model_issue": "ignore",
       "unannotated": "error",
       "unit_value_mismatch": "error",
       "unresolved_variable": "error",
@@ -244,7 +252,7 @@
   "net_settings": {
     "classes": [
       {
-        "bus_width": 12.0,
+        "bus_width": 12,
         "clearance": 0.2,
         "diff_pair_gap": 0.25,
         "diff_pair_via_gap": 0.25,
@@ -258,13 +266,15 @@
         "track_width": 0.25,
         "via_diameter": 0.8,
         "via_drill": 0.4,
-        "wire_width": 6.0
+        "wire_width": 6
       }
     ],
     "meta": {
-      "version": 2
+      "version": 3
     },
-    "net_colors": null
+    "net_colors": null,
+    "netclass_assignments": null,
+    "netclass_patterns": []
   },
   "pcbnew": {
     "last_paths": {
@@ -280,6 +290,8 @@
   "schematic": {
     "annotate_start_num": 0,
     "drawing": {
+      "dashed_lines_dash_length_ratio": 12.0,
+      "dashed_lines_gap_length_ratio": 3.0,
       "default_line_thickness": 6.0,
       "default_text_size": 50.0,
       "field_names": [],
@@ -302,7 +314,11 @@
     "page_layout_descr_file": "",
     "plot_directory": "",
     "spice_adjust_passive_values": false,
+    "spice_current_sheet_as_root": false,
     "spice_external_command": "spice \"%I\"",
+    "spice_model_current_sheet_as_root": true,
+    "spice_save_all_currents": false,
+    "spice_save_all_voltages": false,
     "subpart_first_id": 65,
     "subpart_id_separator": 0
   },

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 184 - 184
eda/Arrosage/Arrosage.kicad_sch


+ 425 - 425
eda/LED/LED.kicad_pro

@@ -1,425 +1,425 @@
-{
-  "board": {
-    "design_settings": {
-      "defaults": {
-        "board_outline_line_width": 0.049999999999999996,
-        "copper_line_width": 0.19999999999999998,
-        "copper_text_italic": false,
-        "copper_text_size_h": 1.5,
-        "copper_text_size_v": 1.5,
-        "copper_text_thickness": 0.3,
-        "copper_text_upright": false,
-        "courtyard_line_width": 0.049999999999999996,
-        "dimension_precision": 4,
-        "dimension_units": 3,
-        "dimensions": {
-          "arrow_length": 1270000,
-          "extension_offset": 500000,
-          "keep_text_aligned": true,
-          "suppress_zeroes": false,
-          "text_position": 0,
-          "units_format": 1
-        },
-        "fab_line_width": 0.09999999999999999,
-        "fab_text_italic": false,
-        "fab_text_size_h": 1.0,
-        "fab_text_size_v": 1.0,
-        "fab_text_thickness": 0.15,
-        "fab_text_upright": false,
-        "other_line_width": 0.09999999999999999,
-        "other_text_italic": false,
-        "other_text_size_h": 1.0,
-        "other_text_size_v": 1.0,
-        "other_text_thickness": 0.15,
-        "other_text_upright": false,
-        "pads": {
-          "drill": 0.0,
-          "height": 6.0,
-          "width": 6.0
-        },
-        "silk_line_width": 0.12,
-        "silk_text_italic": false,
-        "silk_text_size_h": 1.0,
-        "silk_text_size_v": 1.0,
-        "silk_text_thickness": 0.15,
-        "silk_text_upright": false,
-        "zones": {
-          "45_degree_only": false,
-          "min_clearance": 0.508
-        }
-      },
-      "diff_pair_dimensions": [],
-      "drc_exclusions": [],
-      "meta": {
-        "filename": "board_design_settings.json",
-        "version": 2
-      },
-      "rule_severities": {
-        "annular_width": "error",
-        "clearance": "error",
-        "copper_edge_clearance": "error",
-        "courtyards_overlap": "error",
-        "diff_pair_gap_out_of_range": "error",
-        "diff_pair_uncoupled_length_too_long": "error",
-        "drill_out_of_range": "error",
-        "duplicate_footprints": "warning",
-        "extra_footprint": "warning",
-        "footprint_type_mismatch": "error",
-        "hole_clearance": "error",
-        "hole_near_hole": "error",
-        "invalid_outline": "error",
-        "item_on_disabled_layer": "error",
-        "items_not_allowed": "error",
-        "length_out_of_range": "error",
-        "malformed_courtyard": "error",
-        "microvia_drill_out_of_range": "error",
-        "missing_courtyard": "ignore",
-        "missing_footprint": "warning",
-        "net_conflict": "warning",
-        "npth_inside_courtyard": "ignore",
-        "padstack": "error",
-        "pth_inside_courtyard": "ignore",
-        "shorting_items": "error",
-        "silk_over_copper": "warning",
-        "silk_overlap": "warning",
-        "skew_out_of_range": "error",
-        "through_hole_pad_without_hole": "error",
-        "too_many_vias": "error",
-        "track_dangling": "warning",
-        "track_width": "error",
-        "tracks_crossing": "error",
-        "unconnected_items": "error",
-        "unresolved_variable": "error",
-        "via_dangling": "warning",
-        "zone_has_empty_net": "error",
-        "zones_intersect": "error"
-      },
-      "rule_severitieslegacy_courtyards_overlap": true,
-      "rule_severitieslegacy_no_courtyard_defined": false,
-      "rules": {
-        "allow_blind_buried_vias": false,
-        "allow_microvias": false,
-        "max_error": 0.005,
-        "min_clearance": 0.0,
-        "min_copper_edge_clearance": 0.024999999999999998,
-        "min_hole_clearance": 0.25,
-        "min_hole_to_hole": 0.25,
-        "min_microvia_diameter": 0.19999999999999998,
-        "min_microvia_drill": 0.09999999999999999,
-        "min_silk_clearance": 0.0,
-        "min_through_hole_diameter": 0.3,
-        "min_track_width": 0.19999999999999998,
-        "min_via_annular_width": 0.049999999999999996,
-        "min_via_diameter": 0.39999999999999997,
-        "use_height_for_length_calcs": true
-      },
-      "track_widths": [
-        0.0,
-        1.0,
-        10.0
-      ],
-      "via_dimensions": [],
-      "zones_allow_external_fillets": false,
-      "zones_use_no_outline": true
-    },
-    "layer_presets": []
-  },
-  "boards": [],
-  "cvpcb": {
-    "equivalence_files": []
-  },
-  "erc": {
-    "erc_exclusions": [],
-    "meta": {
-      "version": 0
-    },
-    "pin_map": [
-      [
-        0,
-        0,
-        0,
-        0,
-        0,
-        0,
-        1,
-        0,
-        0,
-        0,
-        0,
-        2
-      ],
-      [
-        0,
-        2,
-        0,
-        1,
-        0,
-        0,
-        1,
-        0,
-        2,
-        2,
-        2,
-        2
-      ],
-      [
-        0,
-        0,
-        0,
-        0,
-        0,
-        0,
-        1,
-        0,
-        1,
-        0,
-        1,
-        2
-      ],
-      [
-        0,
-        1,
-        0,
-        0,
-        0,
-        0,
-        1,
-        1,
-        2,
-        1,
-        1,
-        2
-      ],
-      [
-        0,
-        0,
-        0,
-        0,
-        0,
-        0,
-        1,
-        0,
-        0,
-        0,
-        0,
-        2
-      ],
-      [
-        0,
-        0,
-        0,
-        0,
-        0,
-        0,
-        0,
-        0,
-        0,
-        0,
-        0,
-        2
-      ],
-      [
-        1,
-        1,
-        1,
-        1,
-        1,
-        0,
-        1,
-        1,
-        1,
-        1,
-        1,
-        2
-      ],
-      [
-        0,
-        0,
-        0,
-        1,
-        0,
-        0,
-        1,
-        0,
-        0,
-        0,
-        0,
-        2
-      ],
-      [
-        0,
-        2,
-        1,
-        2,
-        0,
-        0,
-        1,
-        0,
-        2,
-        2,
-        2,
-        2
-      ],
-      [
-        0,
-        2,
-        0,
-        1,
-        0,
-        0,
-        1,
-        0,
-        2,
-        0,
-        0,
-        2
-      ],
-      [
-        0,
-        2,
-        1,
-        1,
-        0,
-        0,
-        1,
-        0,
-        2,
-        0,
-        0,
-        2
-      ],
-      [
-        2,
-        2,
-        2,
-        2,
-        2,
-        2,
-        2,
-        2,
-        2,
-        2,
-        2,
-        2
-      ]
-    ],
-    "rule_severities": {
-      "bus_definition_conflict": "error",
-      "bus_entry_needed": "error",
-      "bus_label_syntax": "error",
-      "bus_to_bus_conflict": "error",
-      "bus_to_net_conflict": "error",
-      "different_unit_footprint": "error",
-      "different_unit_net": "error",
-      "duplicate_reference": "error",
-      "duplicate_sheet_names": "error",
-      "extra_units": "error",
-      "global_label_dangling": "warning",
-      "hier_label_mismatch": "error",
-      "label_dangling": "error",
-      "lib_symbol_issues": "warning",
-      "multiple_net_names": "warning",
-      "net_not_bus_member": "warning",
-      "no_connect_connected": "warning",
-      "no_connect_dangling": "warning",
-      "pin_not_connected": "error",
-      "pin_not_driven": "error",
-      "pin_to_pin": "warning",
-      "power_pin_not_driven": "error",
-      "similar_labels": "warning",
-      "unannotated": "error",
-      "unit_value_mismatch": "error",
-      "unresolved_variable": "error",
-      "wire_dangling": "error"
-    }
-  },
-  "libraries": {
-    "pinned_footprint_libs": [],
-    "pinned_symbol_libs": []
-  },
-  "meta": {
-    "filename": "LED.kicad_pro",
-    "version": 1
-  },
-  "net_settings": {
-    "classes": [
-      {
-        "bus_width": 12.0,
-        "clearance": 0.2,
-        "diff_pair_gap": 0.25,
-        "diff_pair_via_gap": 0.25,
-        "diff_pair_width": 0.2,
-        "line_style": 0,
-        "microvia_diameter": 0.3,
-        "microvia_drill": 0.1,
-        "name": "Default",
-        "pcb_color": "rgba(0, 0, 0, 0.000)",
-        "schematic_color": "rgba(0, 0, 0, 0.000)",
-        "track_width": 0.25,
-        "via_diameter": 0.8,
-        "via_drill": 0.4,
-        "wire_width": 6.0
-      }
-    ],
-    "meta": {
-      "version": 2
-    },
-    "net_colors": null
-  },
-  "pcbnew": {
-    "last_paths": {
-      "gencad": "",
-      "idf": "",
-      "netlist": "LED.net",
-      "specctra_dsn": "",
-      "step": "",
-      "vrml": ""
-    },
-    "page_layout_descr_file": ""
-  },
-  "schematic": {
-    "annotate_start_num": 0,
-    "drawing": {
-      "default_line_thickness": 6.0,
-      "default_text_size": 50.0,
-      "field_names": [],
-      "intersheets_ref_own_page": false,
-      "intersheets_ref_prefix": "",
-      "intersheets_ref_short": false,
-      "intersheets_ref_show": false,
-      "intersheets_ref_suffix": "",
-      "junction_size_choice": 3,
-      "label_size_ratio": 0.25,
-      "pin_symbol_size": 0.0,
-      "text_offset_ratio": 0.08
-    },
-    "legacy_lib_dir": "",
-    "legacy_lib_list": [],
-    "meta": {
-      "version": 1
-    },
-    "net_format_name": "Pcbnew",
-    "ngspice": {
-      "fix_include_paths": true,
-      "fix_passive_vals": false,
-      "meta": {
-        "version": 0
-      },
-      "model_mode": 0,
-      "workbook_filename": ""
-    },
-    "page_layout_descr_file": "",
-    "plot_directory": "",
-    "spice_adjust_passive_values": false,
-    "spice_external_command": "spice \"%I\"",
-    "subpart_first_id": 65,
-    "subpart_id_separator": 0
-  },
-  "sheets": [
-    [
-      "79de14ff-4f94-40ca-87dd-316c4b5b45da",
-      ""
-    ]
-  ],
-  "text_variables": {}
-}
+{
+  "board": {
+    "design_settings": {
+      "defaults": {
+        "board_outline_line_width": 0.049999999999999996,
+        "copper_line_width": 0.19999999999999998,
+        "copper_text_italic": false,
+        "copper_text_size_h": 1.5,
+        "copper_text_size_v": 1.5,
+        "copper_text_thickness": 0.3,
+        "copper_text_upright": false,
+        "courtyard_line_width": 0.049999999999999996,
+        "dimension_precision": 4,
+        "dimension_units": 3,
+        "dimensions": {
+          "arrow_length": 1270000,
+          "extension_offset": 500000,
+          "keep_text_aligned": true,
+          "suppress_zeroes": false,
+          "text_position": 0,
+          "units_format": 1
+        },
+        "fab_line_width": 0.09999999999999999,
+        "fab_text_italic": false,
+        "fab_text_size_h": 1.0,
+        "fab_text_size_v": 1.0,
+        "fab_text_thickness": 0.15,
+        "fab_text_upright": false,
+        "other_line_width": 0.09999999999999999,
+        "other_text_italic": false,
+        "other_text_size_h": 1.0,
+        "other_text_size_v": 1.0,
+        "other_text_thickness": 0.15,
+        "other_text_upright": false,
+        "pads": {
+          "drill": 0.0,
+          "height": 6.0,
+          "width": 6.0
+        },
+        "silk_line_width": 0.12,
+        "silk_text_italic": false,
+        "silk_text_size_h": 1.0,
+        "silk_text_size_v": 1.0,
+        "silk_text_thickness": 0.15,
+        "silk_text_upright": false,
+        "zones": {
+          "45_degree_only": false,
+          "min_clearance": 0.508
+        }
+      },
+      "diff_pair_dimensions": [],
+      "drc_exclusions": [],
+      "meta": {
+        "filename": "board_design_settings.json",
+        "version": 2
+      },
+      "rule_severities": {
+        "annular_width": "error",
+        "clearance": "error",
+        "copper_edge_clearance": "error",
+        "courtyards_overlap": "error",
+        "diff_pair_gap_out_of_range": "error",
+        "diff_pair_uncoupled_length_too_long": "error",
+        "drill_out_of_range": "error",
+        "duplicate_footprints": "warning",
+        "extra_footprint": "warning",
+        "footprint_type_mismatch": "error",
+        "hole_clearance": "error",
+        "hole_near_hole": "error",
+        "invalid_outline": "error",
+        "item_on_disabled_layer": "error",
+        "items_not_allowed": "error",
+        "length_out_of_range": "error",
+        "malformed_courtyard": "error",
+        "microvia_drill_out_of_range": "error",
+        "missing_courtyard": "ignore",
+        "missing_footprint": "warning",
+        "net_conflict": "warning",
+        "npth_inside_courtyard": "ignore",
+        "padstack": "error",
+        "pth_inside_courtyard": "ignore",
+        "shorting_items": "error",
+        "silk_over_copper": "warning",
+        "silk_overlap": "warning",
+        "skew_out_of_range": "error",
+        "through_hole_pad_without_hole": "error",
+        "too_many_vias": "error",
+        "track_dangling": "warning",
+        "track_width": "error",
+        "tracks_crossing": "error",
+        "unconnected_items": "error",
+        "unresolved_variable": "error",
+        "via_dangling": "warning",
+        "zone_has_empty_net": "error",
+        "zones_intersect": "error"
+      },
+      "rule_severitieslegacy_courtyards_overlap": true,
+      "rule_severitieslegacy_no_courtyard_defined": false,
+      "rules": {
+        "allow_blind_buried_vias": false,
+        "allow_microvias": false,
+        "max_error": 0.005,
+        "min_clearance": 0.0,
+        "min_copper_edge_clearance": 0.024999999999999998,
+        "min_hole_clearance": 0.25,
+        "min_hole_to_hole": 0.25,
+        "min_microvia_diameter": 0.19999999999999998,
+        "min_microvia_drill": 0.09999999999999999,
+        "min_silk_clearance": 0.0,
+        "min_through_hole_diameter": 0.3,
+        "min_track_width": 0.19999999999999998,
+        "min_via_annular_width": 0.049999999999999996,
+        "min_via_diameter": 0.39999999999999997,
+        "use_height_for_length_calcs": true
+      },
+      "track_widths": [
+        0.0,
+        1.0,
+        10.0
+      ],
+      "via_dimensions": [],
+      "zones_allow_external_fillets": false,
+      "zones_use_no_outline": true
+    },
+    "layer_presets": []
+  },
+  "boards": [],
+  "cvpcb": {
+    "equivalence_files": []
+  },
+  "erc": {
+    "erc_exclusions": [],
+    "meta": {
+      "version": 0
+    },
+    "pin_map": [
+      [
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        0,
+        0,
+        0,
+        0,
+        2
+      ],
+      [
+        0,
+        2,
+        0,
+        1,
+        0,
+        0,
+        1,
+        0,
+        2,
+        2,
+        2,
+        2
+      ],
+      [
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        0,
+        1,
+        0,
+        1,
+        2
+      ],
+      [
+        0,
+        1,
+        0,
+        0,
+        0,
+        0,
+        1,
+        1,
+        2,
+        1,
+        1,
+        2
+      ],
+      [
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        1,
+        0,
+        0,
+        0,
+        0,
+        2
+      ],
+      [
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        0,
+        2
+      ],
+      [
+        1,
+        1,
+        1,
+        1,
+        1,
+        0,
+        1,
+        1,
+        1,
+        1,
+        1,
+        2
+      ],
+      [
+        0,
+        0,
+        0,
+        1,
+        0,
+        0,
+        1,
+        0,
+        0,
+        0,
+        0,
+        2
+      ],
+      [
+        0,
+        2,
+        1,
+        2,
+        0,
+        0,
+        1,
+        0,
+        2,
+        2,
+        2,
+        2
+      ],
+      [
+        0,
+        2,
+        0,
+        1,
+        0,
+        0,
+        1,
+        0,
+        2,
+        0,
+        0,
+        2
+      ],
+      [
+        0,
+        2,
+        1,
+        1,
+        0,
+        0,
+        1,
+        0,
+        2,
+        0,
+        0,
+        2
+      ],
+      [
+        2,
+        2,
+        2,
+        2,
+        2,
+        2,
+        2,
+        2,
+        2,
+        2,
+        2,
+        2
+      ]
+    ],
+    "rule_severities": {
+      "bus_definition_conflict": "error",
+      "bus_entry_needed": "error",
+      "bus_label_syntax": "error",
+      "bus_to_bus_conflict": "error",
+      "bus_to_net_conflict": "error",
+      "different_unit_footprint": "error",
+      "different_unit_net": "error",
+      "duplicate_reference": "error",
+      "duplicate_sheet_names": "error",
+      "extra_units": "error",
+      "global_label_dangling": "warning",
+      "hier_label_mismatch": "error",
+      "label_dangling": "error",
+      "lib_symbol_issues": "warning",
+      "multiple_net_names": "warning",
+      "net_not_bus_member": "warning",
+      "no_connect_connected": "warning",
+      "no_connect_dangling": "warning",
+      "pin_not_connected": "error",
+      "pin_not_driven": "error",
+      "pin_to_pin": "warning",
+      "power_pin_not_driven": "error",
+      "similar_labels": "warning",
+      "unannotated": "error",
+      "unit_value_mismatch": "error",
+      "unresolved_variable": "error",
+      "wire_dangling": "error"
+    }
+  },
+  "libraries": {
+    "pinned_footprint_libs": [],
+    "pinned_symbol_libs": []
+  },
+  "meta": {
+    "filename": "LED.kicad_pro",
+    "version": 1
+  },
+  "net_settings": {
+    "classes": [
+      {
+        "bus_width": 12.0,
+        "clearance": 0.2,
+        "diff_pair_gap": 0.25,
+        "diff_pair_via_gap": 0.25,
+        "diff_pair_width": 0.2,
+        "line_style": 0,
+        "microvia_diameter": 0.3,
+        "microvia_drill": 0.1,
+        "name": "Default",
+        "pcb_color": "rgba(0, 0, 0, 0.000)",
+        "schematic_color": "rgba(0, 0, 0, 0.000)",
+        "track_width": 0.25,
+        "via_diameter": 0.8,
+        "via_drill": 0.4,
+        "wire_width": 6.0
+      }
+    ],
+    "meta": {
+      "version": 2
+    },
+    "net_colors": null
+  },
+  "pcbnew": {
+    "last_paths": {
+      "gencad": "",
+      "idf": "",
+      "netlist": "LED.net",
+      "specctra_dsn": "",
+      "step": "",
+      "vrml": ""
+    },
+    "page_layout_descr_file": ""
+  },
+  "schematic": {
+    "annotate_start_num": 0,
+    "drawing": {
+      "default_line_thickness": 6.0,
+      "default_text_size": 50.0,
+      "field_names": [],
+      "intersheets_ref_own_page": false,
+      "intersheets_ref_prefix": "",
+      "intersheets_ref_short": false,
+      "intersheets_ref_show": false,
+      "intersheets_ref_suffix": "",
+      "junction_size_choice": 3,
+      "label_size_ratio": 0.25,
+      "pin_symbol_size": 0.0,
+      "text_offset_ratio": 0.08
+    },
+    "legacy_lib_dir": "",
+    "legacy_lib_list": [],
+    "meta": {
+      "version": 1
+    },
+    "net_format_name": "Pcbnew",
+    "ngspice": {
+      "fix_include_paths": true,
+      "fix_passive_vals": false,
+      "meta": {
+        "version": 0
+      },
+      "model_mode": 0,
+      "workbook_filename": ""
+    },
+    "page_layout_descr_file": "",
+    "plot_directory": "",
+    "spice_adjust_passive_values": false,
+    "spice_external_command": "spice \"%I\"",
+    "subpart_first_id": 65,
+    "subpart_id_separator": 0
+  },
+  "sheets": [
+    [
+      "79de14ff-4f94-40ca-87dd-316c4b5b45da",
+      ""
+    ]
+  ],
+  "text_variables": {}
+}

BIN
eda/ProcCult/ProcCult-backups/ProcCult-2023-04-18_122844.zip


BIN
eda/ProcCult/ProcCult-backups/ProcCult-2023-04-18_124003.zip


BIN
eda/ProcCult/ProcCult-backups/ProcCult-2024-06-17_125241.zip


+ 2 - 0
eda/ProcCult/ProcCult.kicad_prl

@@ -3,10 +3,12 @@
     "active_layer": 0,
     "active_layer_preset": "All Layers",
     "auto_track_width": true,
+    "hidden_netclasses": [],
     "hidden_nets": [],
     "high_contrast_mode": 0,
     "net_color_mode": 1,
     "opacity": {
+      "images": 0.6,
       "pads": 1.0,
       "tracks": 1.0,
       "vias": 1.0,

+ 22 - 6
eda/ProcCult/ProcCult.kicad_pro

@@ -1,5 +1,6 @@
 {
   "board": {
+    "3dviewports": [],
     "design_settings": {
       "defaults": {
         "board_outline_line_width": 0.049999999999999996,
@@ -116,7 +117,8 @@
       "zones_allow_external_fillets": false,
       "zones_use_no_outline": true
     },
-    "layer_presets": []
+    "layer_presets": [],
+    "viewports": []
   },
   "boards": [],
   "cvpcb": {
@@ -300,18 +302,23 @@
     "rule_severities": {
       "bus_definition_conflict": "error",
       "bus_entry_needed": "error",
-      "bus_label_syntax": "error",
       "bus_to_bus_conflict": "error",
       "bus_to_net_conflict": "error",
+      "conflicting_netclasses": "error",
       "different_unit_footprint": "error",
       "different_unit_net": "error",
       "duplicate_reference": "error",
       "duplicate_sheet_names": "error",
+      "endpoint_off_grid": "warning",
       "extra_units": "error",
       "global_label_dangling": "warning",
       "hier_label_mismatch": "error",
       "label_dangling": "error",
       "lib_symbol_issues": "warning",
+      "missing_bidi_pin": "warning",
+      "missing_input_pin": "warning",
+      "missing_power_pin": "error",
+      "missing_unit": "warning",
       "multiple_net_names": "warning",
       "net_not_bus_member": "warning",
       "no_connect_connected": "warning",
@@ -321,6 +328,7 @@
       "pin_to_pin": "warning",
       "power_pin_not_driven": "error",
       "similar_labels": "warning",
+      "simulation_model_issue": "ignore",
       "unannotated": "error",
       "unit_value_mismatch": "error",
       "unresolved_variable": "error",
@@ -338,7 +346,7 @@
   "net_settings": {
     "classes": [
       {
-        "bus_width": 12.0,
+        "bus_width": 12,
         "clearance": 0.2,
         "diff_pair_gap": 0.25,
         "diff_pair_via_gap": 0.25,
@@ -352,13 +360,15 @@
         "track_width": 0.25,
         "via_diameter": 0.8,
         "via_drill": 0.4,
-        "wire_width": 6.0
+        "wire_width": 6
       }
     ],
     "meta": {
-      "version": 2
+      "version": 3
     },
-    "net_colors": null
+    "net_colors": null,
+    "netclass_assignments": null,
+    "netclass_patterns": []
   },
   "pcbnew": {
     "last_paths": {
@@ -374,6 +384,8 @@
   "schematic": {
     "annotate_start_num": 0,
     "drawing": {
+      "dashed_lines_dash_length_ratio": 12.0,
+      "dashed_lines_gap_length_ratio": 3.0,
       "default_line_thickness": 6.0,
       "default_text_size": 50.0,
       "field_names": [],
@@ -405,7 +417,11 @@
     "page_layout_descr_file": "",
     "plot_directory": "",
     "spice_adjust_passive_values": false,
+    "spice_current_sheet_as_root": false,
     "spice_external_command": "spice \"%I\"",
+    "spice_model_current_sheet_as_root": true,
+    "spice_save_all_currents": false,
+    "spice_save_all_voltages": false,
     "subpart_first_id": 65,
     "subpart_id_separator": 0
   },

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 179 - 179
eda/ProcCult/ProcCult.kicad_sch


BIN
eda/tmpHum/tmpHum-backups/tmpHum-2023-04-12_151945.zip


BIN
eda/tmpHum/tmpHum-backups/tmpHum-2023-04-12_152719.zip


BIN
eda/tmpHum/tmpHum-backups/tmpHum-2023-04-12_154823.zip


BIN
eda/tmpHum/tmpHum-backups/tmpHum-2023-04-12_155353.zip


BIN
eda/tmpHum/tmpHum-backups/tmpHum-2023-04-12_155942.zip


BIN
eda/tmpHum/tmpHum-backups/tmpHum-2024-06-17_125302.zip


+ 2 - 0
eda/tmpHum/tmpHum.kicad_prl

@@ -3,10 +3,12 @@
     "active_layer": 44,
     "active_layer_preset": "All Layers",
     "auto_track_width": true,
+    "hidden_netclasses": [],
     "hidden_nets": [],
     "high_contrast_mode": 0,
     "net_color_mode": 1,
     "opacity": {
+      "images": 0.6,
       "pads": 1.0,
       "tracks": 1.0,
       "vias": 1.0,

+ 65 - 6
eda/tmpHum/tmpHum.kicad_pro

@@ -1,5 +1,6 @@
 {
   "board": {
+    "3dviewports": [],
     "design_settings": {
       "defaults": {
         "board_outline_line_width": 0.049999999999999996,
@@ -57,20 +58,26 @@
       "rule_severities": {
         "annular_width": "error",
         "clearance": "error",
+        "connection_width": "warning",
         "copper_edge_clearance": "error",
+        "copper_sliver": "warning",
         "courtyards_overlap": "error",
         "diff_pair_gap_out_of_range": "error",
         "diff_pair_uncoupled_length_too_long": "error",
         "drill_out_of_range": "error",
         "duplicate_footprints": "warning",
         "extra_footprint": "warning",
+        "footprint": "error",
         "footprint_type_mismatch": "error",
         "hole_clearance": "error",
         "hole_near_hole": "error",
         "invalid_outline": "error",
+        "isolated_copper": "warning",
         "item_on_disabled_layer": "error",
         "items_not_allowed": "error",
         "length_out_of_range": "error",
+        "lib_footprint_issues": "warning",
+        "lib_footprint_mismatch": "warning",
         "malformed_courtyard": "error",
         "microvia_drill_out_of_range": "error",
         "missing_courtyard": "ignore",
@@ -80,9 +87,14 @@
         "padstack": "error",
         "pth_inside_courtyard": "ignore",
         "shorting_items": "error",
+        "silk_edge_clearance": "warning",
         "silk_over_copper": "warning",
         "silk_overlap": "warning",
         "skew_out_of_range": "error",
+        "solder_mask_bridge": "error",
+        "starved_thermal": "error",
+        "text_height": "warning",
+        "text_thickness": "warning",
         "through_hole_pad_without_hole": "error",
         "too_many_vias": "error",
         "track_dangling": "warning",
@@ -91,7 +103,6 @@
         "unconnected_items": "error",
         "unresolved_variable": "error",
         "via_dangling": "warning",
-        "zone_has_empty_net": "error",
         "zones_intersect": "error"
       },
       "rules": {
@@ -99,24 +110,70 @@
         "allow_microvias": false,
         "max_error": 0.005,
         "min_clearance": 0.0,
+        "min_connection": 0.0,
         "min_copper_edge_clearance": 0.024999999999999998,
         "min_hole_clearance": 0.25,
         "min_hole_to_hole": 0.25,
         "min_microvia_diameter": 0.19999999999999998,
         "min_microvia_drill": 0.09999999999999999,
+        "min_resolved_spokes": 2,
         "min_silk_clearance": 0.0,
+        "min_text_height": 0.7999999999999999,
+        "min_text_thickness": 0.08,
         "min_through_hole_diameter": 0.3,
         "min_track_width": 0.19999999999999998,
         "min_via_annular_width": 0.049999999999999996,
         "min_via_diameter": 0.39999999999999997,
+        "solder_mask_to_copper_clearance": 0.0,
         "use_height_for_length_calcs": true
       },
+      "teardrop_options": [
+        {
+          "td_allow_use_two_tracks": true,
+          "td_curve_segcount": 5,
+          "td_on_pad_in_zone": false,
+          "td_onpadsmd": true,
+          "td_onroundshapesonly": false,
+          "td_ontrackend": false,
+          "td_onviapad": true
+        }
+      ],
+      "teardrop_parameters": [
+        {
+          "td_curve_segcount": 0,
+          "td_height_ratio": 1.0,
+          "td_length_ratio": 0.5,
+          "td_maxheight": 2.0,
+          "td_maxlen": 1.0,
+          "td_target_name": "td_round_shape",
+          "td_width_to_size_filter_ratio": 0.9
+        },
+        {
+          "td_curve_segcount": 0,
+          "td_height_ratio": 1.0,
+          "td_length_ratio": 0.5,
+          "td_maxheight": 2.0,
+          "td_maxlen": 1.0,
+          "td_target_name": "td_rect_shape",
+          "td_width_to_size_filter_ratio": 0.9
+        },
+        {
+          "td_curve_segcount": 0,
+          "td_height_ratio": 1.0,
+          "td_length_ratio": 0.5,
+          "td_maxheight": 2.0,
+          "td_maxlen": 1.0,
+          "td_target_name": "td_track_end",
+          "td_width_to_size_filter_ratio": 0.9
+        }
+      ],
       "track_widths": [],
       "via_dimensions": [],
       "zones_allow_external_fillets": false,
       "zones_use_no_outline": true
     },
-    "layer_presets": []
+    "layer_presets": [],
+    "viewports": []
   },
   "boards": [],
   "cvpcb": {
@@ -338,7 +395,7 @@
   "net_settings": {
     "classes": [
       {
-        "bus_width": 12.0,
+        "bus_width": 12,
         "clearance": 0.2,
         "diff_pair_gap": 0.25,
         "diff_pair_via_gap": 0.25,
@@ -352,13 +409,15 @@
         "track_width": 0.25,
         "via_diameter": 0.8,
         "via_drill": 0.4,
-        "wire_width": 6.0
+        "wire_width": 6
       }
     ],
     "meta": {
-      "version": 2
+      "version": 3
     },
-    "net_colors": null
+    "net_colors": null,
+    "netclass_assignments": null,
+    "netclass_patterns": []
   },
   "pcbnew": {
     "last_paths": {

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 253 - 193
eda/tmpHum/tmpHum.kicad_sch


Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно