|  | 
|  | 1 | +import { customElement, html, LitElement } from 'lit-element'; | 
|  | 2 | +import { ElementPin } from './pin'; | 
|  | 3 | + | 
|  | 4 | +@customElement('wokwi-hc-sr04') | 
|  | 5 | +export class HCSR04Element extends LitElement { | 
|  | 6 | +  readonly pinInfo: ElementPin[] = [ | 
|  | 7 | +    { name: 'VCC', x: 71.78, y: 94.5, signals: [{ type: 'power', signal: 'VCC', voltage: 5 }] }, | 
|  | 8 | +    { name: 'TRIG', x: 79.67, y: 94.5, signals: [] }, | 
|  | 9 | +    { name: 'ECHO', x: 87.56, y: 94.5, signals: [] }, | 
|  | 10 | +    { name: 'GND', x: 95.45, y: 94.5, signals: [{ type: 'power', signal: 'GND' }] }, | 
|  | 11 | +  ]; | 
|  | 12 | + | 
|  | 13 | +  render() { | 
|  | 14 | +    return html` | 
|  | 15 | +      <svg | 
|  | 16 | +        xmlns="http://www.w3.org/2000/svg" | 
|  | 17 | +        xmlns:xlink="http://www.w3.org/1999/xlink" | 
|  | 18 | +        viewBox="0 0 45 25" | 
|  | 19 | +        height="25mm" | 
|  | 20 | +        width="45mm" | 
|  | 21 | +        font-family="monospace" | 
|  | 22 | +      > | 
|  | 23 | +        <defs> | 
|  | 24 | +          <pattern patternUnits="userSpaceOnUse" width="2" height="2" id="checkerboard"> | 
|  | 25 | +            <path d="M0 0h1v1H0zM1 1h1v1H1z" /> | 
|  | 26 | +          </pattern> | 
|  | 27 | +          <radialGradient id="grad1" cx="8.96" cy="10.04" r="3.58" gradientUnits="userSpaceOnUse"> | 
|  | 28 | +            <stop stop-color="#777" offset="0" /> | 
|  | 29 | +            <stop stop-color="#b9b9b9" offset="1" /> | 
|  | 30 | +          </radialGradient> | 
|  | 31 | +          <g id="sensor-unit"> | 
|  | 32 | +            <circle cx="8.98" cy="10" r="8.61" fill="#dcdcdc" /> | 
|  | 33 | +            <circle cx="8.98" cy="10" r="7.17" fill="#222" /> | 
|  | 34 | +            <circle cx="8.98" cy="10" r="5.53" fill="#777" fill-opacity=".992" /> | 
|  | 35 | +            <circle cx="8.98" cy="10" r="3.59" fill="url(#grad1)" /> | 
|  | 36 | +            <circle cx="8.99" cy="10" r=".277" fill="#777" fill-opacity=".818" /> | 
|  | 37 | +            <circle cx="8.98" cy="10" r="5.53" fill="url(#checkerboard)" opacity=".397" /> | 
|  | 38 | +          </g> | 
|  | 39 | +        </defs> | 
|  | 40 | +        <path | 
|  | 41 | +          d="M0 0v20.948h45V0zm1.422.464a1 1 0 01.004 0 1 1 0 011 1 1 1 0 01-1 1 1 1 0 01-1-1 1 1 0 01.996-1zm41.956 0a1 1 0 01.004 0 1 1 0 011 1 1 1 0 01-1 1 1 1 0 01-1-1 1 1 0 01.996-1zM1.422 18.484a1 1 0 01.004 0 1 1 0 011 1 1 1 0 01-1 1 1 1 0 01-1-1 1 1 0 01.996-1zm41.956 0a1 1 0 01.004 0 1 1 0 011 1 1 1 0 01-1 1 1 1 0 01-1-1 1 1 0 01.996-1z" | 
|  | 42 | +          fill="#456f93" | 
|  | 43 | +        /> | 
|  | 44 | +        <path | 
|  | 45 | +          d="M15.293 5.888l2.934-2.934v3.124l2.944 2.943v10.143M23.269 19.037v-2.473l-.966-.965v-12.5l2.577 1.488 4.741 4.741" | 
|  | 46 | +          fill="none" | 
|  | 47 | +          stroke="#355a7c" | 
|  | 48 | +          stroke-width=".858" | 
|  | 49 | +        /> | 
|  | 50 | +        <use xlink:href="#sensor-unit" /> | 
|  | 51 | +        <use xlink:href="#sensor-unit" x="27.12" /> | 
|  | 52 | +        <g fill="none" stroke="#505132" stroke-width=".368"> | 
|  | 53 | +          <circle cx="43.4" cy="1.46" r="1" /> | 
|  | 54 | +          <circle cx="43.4" cy="19.5" r="1" /> | 
|  | 55 | +          <circle cx="1.43" cy="1.46" r="1" /> | 
|  | 56 | +          <circle cx="1.43" cy="19.5" r="1" /> | 
|  | 57 | +        </g> | 
|  | 58 | +        <rect | 
|  | 59 | +          ry="2.07" | 
|  | 60 | +          y=".626" | 
|  | 61 | +          x="17.111" | 
|  | 62 | +          height="4.139" | 
|  | 63 | +          width="10.272" | 
|  | 64 | +          fill="#878787" | 
|  | 65 | +          stroke="#424242" | 
|  | 66 | +          stroke-width=".368" | 
|  | 67 | +        /> | 
|  | 68 | +        <g fill="black"> | 
|  | 69 | +          <rect x="17.87" y="18" ry=".568" width="2.25" height="2.271" /> | 
|  | 70 | +          <rect x="19.95" y="18" ry=".568" width="2.25" height="2.271" /> | 
|  | 71 | +          <rect x="22.04" y="18" ry=".568" width="2.25" height="2.271" /> | 
|  | 72 | +          <rect x="24.12" y="18" ry=".568" width="2.25" height="2.271" /> | 
|  | 73 | +        </g> | 
|  | 74 | +        <g fill="#ccc" stroke-linecap="round" stroke-width=".21"> | 
|  | 75 | +          <rect x="18.616" y="19" width=".75" height="7" rx=".2" /> | 
|  | 76 | +          <rect x="20.702" y="19" width=".75" height="7" rx=".2" /> | 
|  | 77 | +          <rect x="22.789" y="19" width=".75" height="7" rx=".2" /> | 
|  | 78 | +          <rect x="24.875" y="19" width=".75" height="7" rx=".2" /> | 
|  | 79 | +        </g> | 
|  | 80 | +        <text font-weight="400" font-size="2.2" fill="#e6e6e6" stroke-width=".055"> | 
|  | 81 | +          <tspan y="8" x="18"> | 
|  | 82 | +            HC-SR04 | 
|  | 83 | +          </tspan> | 
|  | 84 | +        </text> | 
|  | 85 | +        <text | 
|  | 86 | +          transform="rotate(-90)" | 
|  | 87 | +          font-weight="400" | 
|  | 88 | +          font-size="1.55" | 
|  | 89 | +          fill="#e6e6e6" | 
|  | 90 | +          stroke-width=".039" | 
|  | 91 | +        > | 
|  | 92 | +          <tspan x="-17.591" y="19.561"> | 
|  | 93 | +            Vcc | 
|  | 94 | +          </tspan> | 
|  | 95 | +          <tspan x="-17.591" y="21.654"> | 
|  | 96 | +            Trig | 
|  | 97 | +          </tspan> | 
|  | 98 | +          <tspan x="-17.591" y="23.747"> | 
|  | 99 | +            Echo | 
|  | 100 | +          </tspan> | 
|  | 101 | +          <tspan x="-17.591" y="25.84"> | 
|  | 102 | +            Gnd | 
|  | 103 | +          </tspan> | 
|  | 104 | +        </text> | 
|  | 105 | +      </svg> | 
|  | 106 | +    `; | 
|  | 107 | +  } | 
|  | 108 | +} | 
0 commit comments